2015-09-14 121 views
0

我正在尝试创建一个base64基本身份验证标头以供API使用。在swift 2.0和iOS9中,它开始给我带来问题,所以我想检查标头或base64Credentials的内容。不幸的是,我所看到的只是(功能)。在控制台中打印字符串(功能)。为什么?

let credentialData = "[email protected]:demo123".dataUsingEncoding(NSUTF8StringEncoding)! 
    let base64Credentials = credentialData.base64EncodedStringWithOptions 

    let headers = ["Authorization": "Basic \(base64Credentials)"] 

    print("Here are the base64 encoded headers \(base64Credentials)") 

息率

这里的base64编码头(功能)

我怎样才能找出这些字符串的值?

我错过了Swift 2.0中突然出现这个问题的新东西吗?

谢谢

乔希

回答

2
public func base64EncodedStringWithOptions(options: NSDataBase64EncodingOptions) -> String 

是一个实例方法。函数和方法在括号中用零个或多个参数调用 。在这种情况下,我们有一个 的说法,这可能是[]毫无选择:

let credentialData = "[email protected]:demo123".dataUsingEncoding(NSUTF8StringEncoding)! 
let base64Credentials = credentialData.base64EncodedStringWithOptions([]) 

print("Here are the base64 encoded headers \(base64Credentials)") 
// Here are the base64 encoded headers ZGVtb0BkZW1vLmNvbTpkZW1vMTIz 

在你的代码

let base64Credentials = credentialData.base64EncodedStringWithOptions 

方法本身被分配的变量,那打印 为“(功能)”。

我错过了Swift 2.0中突然出现这个问题的新东西吗?

不,这将是雨燕1.2相同的问题。唯一的区别 是类型的参数,在Swift 1.2中,您将指定 “no options”为nil而不是[]

+0

这是现货。我们给它零,但从2.0到不正确,所以我们最终摆脱了它导致这个问题。谢谢您的帮助!很好的解释。 –

相关问题