Swift3 Swift 3:CNLabeledValue作为参数

Swift3 Swift 3:CNLabeledValue作为参数,swift3,Swift3,升级到Swift 3即可。打开并转换代码后,我发现了很多错误。其中之一是关于CNLabeledValue 使用Swift 2.3,它可以很好地与以下各项配合使用: func myFunc(contactItems: [CNLabeledValue]) -> String { .... } 对于Swift 3,它会给我错误信息: 对泛型类型“CNLabeledValue”的引用需要中的参数 我用XCode修复后,它变为: func myFunc(contactItems: [CN

升级到Swift 3即可。打开并转换代码后,我发现了很多错误。其中之一是关于
CNLabeledValue

使用Swift 2.3,它可以很好地与以下各项配合使用:

func myFunc(contactItems: [CNLabeledValue]) -> String {
    ....
}
对于Swift 3,它会给我错误信息:

对泛型类型“CNLabeledValue”的引用需要中的参数

我用XCode修复后,它变为:

func myFunc(contactItems: [CNLabeledValue<AnyObject>]) -> String {
    ....
}
func myFunc(contactItems:[CNLabeledValue])->String{
....
}
但是,XCode向我提供了此修复程序的错误消息:

类型“AnyObject”不符合协议“NSCopying”

我知道错误是因为泛型类型,但我不知道如何使用
CNLabeledValue
声明。我的目的是将所有
CNLabeledValue
包括电话号码、电子邮件、地址等存储到一个数组中

任何帮助都将不胜感激。

使用泛型

func myFunc<T: NSCopying>(contactItems: [CNLabeledValue<T>]) -> String {
  ...
}
func myFunc(contactItems:[CNLabeledValue])->String{
...
}