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()
