2016-09-16 31 views
2

只需升級到Swift 3.打開並轉換我的代碼後,我發現了很多錯誤。其中之一是約CNLabeledValueSwift 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包括電話號碼,電子郵件,地址等存儲到一個陣列。

任何幫助將不勝感激。

回答

2

使用泛型

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