Skip to main content
 首页 » 操作系统

ios之Swift之base64EncodingStringWithOptions 不工作 Xcode 6.1

2024年01月01日34cyq1162

let username = "operator" 
let password = "pass" 
let loginString = NSString(format: "%@:%@", username, password) 
let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)! 
let base64LoginString = loginData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.fromMask(0)) 
 
// create the request 
let url = NSURL(string: "myurl") 
let request = NSMutableURLRequest(URL: url) 
request.HTTPMethod = "GET" 
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization") 

上面的代码在 Xcode 6.1 之前运行良好,但现在我在 base64LoginString 常量上遇到错误。

/Users/Joel/Project/MapViewController.swift:31:74: 'NSDataBase64EncodingOptions.Type' does not have a member named 'fromMask' 

我是 Swift 的新手,我还想就如何解决此类问题而不用发布到 StackOverflow 提出一些建议。

请您参考如下方法:

当前版本的 Swift 中不再存在 fromMask() 构造函数。 要指定“无选项”,请使用

let base64LoginString = loginData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(0)) 

或者只是

let base64LoginString = loginData.base64EncodedStringWithOptions(nil) 

对于 Swift 2(比较 https://stackoverflow.com/a/32499968/1187415 ):

let base64LoginString = loginData.base64EncodedStringWithOptions([]) 

对于 Swift 3:

let base64LoginString = loginData.base64EncodedString()