只需升级到Swift 3.打开并转换我的代码后,我发现了很多错误。其中一个是关于CNLabeledValue
。
使用Swift 2.3,它适用于:
func myFunc(contactItems: [CNLabeledValue]) -> String {
....
}
使用Swift 3,它会给出错误消息:
对泛型类型'CNLabeledValue'的引用需要参数 < ...>
用XCode修复后,它改为:
func myFunc(contactItems: [CNLabeledValue<AnyObject>]) -> String {
....
}
但是,XCode通过此修复程序给出了错误消息:
类型'AnyObject'不符合协议'NSCopying'。
我知道错误是因为泛型类型,但我不知道如何使用CNLabeledValue
声明。我的目的是将所有CNLabeledValue
(包括电话号码,电子邮件,地址等)存储到一个阵列中。
任何帮助都将受到赞赏。
答案 0 :(得分:2)
使用泛型
func myFunc<T: NSCopying>(contactItems: [CNLabeledValue<T>]) -> String {
...
}