首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSURLCredential不能在Swift中编译

NSURLCredential不能在Swift中编译
EN

Stack Overflow用户
提问于 2014-10-10 13:51:21
回答 2查看 758关注 0票数 0

我有一些最新的XCode 6.1 (6A1046a)的编译问题。

这一行将编译:

代码语言:javascript
复制
var newCredential = NSURLCredential(user: "test", password: "test", persistence: NSURLCredentialPersistence.None);

但这一次却抛出了错误“额外的论点‘身份’的调用”:

代码语言:javascript
复制
var identita : SecIdentity = self.getClientCertificate();
var newCredential2 = NSURLCredential(identity: identita, certificates: nil, persistence: NSURLCredentialPersistence.None);

但我不知道为什么。根据手册,它应该工作:ref/occ/clm/NSURLCredential/credentialWithIdentity:certificates:persistence

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-10 14:18:04

Swift给出的错误具有误导性(如果要传递给函数的参数之一是错误类型的话,这是一个常见的问题)。问题是certificates被定义为[AnyObject],但是您传递的是nil。因为certificates不是可选的,所以它不能接受nil值。文件还说:

表示凭证证书的一个或多个 SecCertificateRef对象的数组。

因此,您应该向它传递至少一个证书的数组。

票数 2
EN

Stack Overflow用户

发布于 2014-10-10 14:17:45

编译器诊断在这里是不好的。实际发生的情况是,您在nil中传递了certificates参数,但是该参数需要一个非可选的[AnyObject],编译器无法找到与该类型匹配的初始化器。尝试传入[] (空数组)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26301060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档