我有一些最新的XCode 6.1 (6A1046a)的编译问题。
这一行将编译:
var newCredential = NSURLCredential(user: "test", password: "test", persistence: NSURLCredentialPersistence.None);但这一次却抛出了错误“额外的论点‘身份’的调用”:
var identita : SecIdentity = self.getClientCertificate();
var newCredential2 = NSURLCredential(identity: identita, certificates: nil, persistence: NSURLCredentialPersistence.None);但我不知道为什么。根据手册,它应该工作:ref/occ/clm/NSURLCredential/credentialWithIdentity:certificates:persistence
有什么想法吗?
发布于 2014-10-10 14:18:04
Swift给出的错误具有误导性(如果要传递给函数的参数之一是错误类型的话,这是一个常见的问题)。问题是certificates被定义为[AnyObject],但是您传递的是nil。因为certificates不是可选的,所以它不能接受nil值。文件还说:
表示凭证证书的一个或多个 SecCertificateRef对象的数组。
因此,您应该向它传递至少一个证书的数组。
发布于 2014-10-10 14:17:45
编译器诊断在这里是不好的。实际发生的情况是,您在nil中传递了certificates参数,但是该参数需要一个非可选的[AnyObject],编译器无法找到与该类型匹配的初始化器。尝试传入[] (空数组)。
https://stackoverflow.com/questions/26301060
复制相似问题