所使用的iOS中的9到工作代碼爲:如何使用Swift 3聲明一個類型爲'CNLabeledValue'的空數組?
var valuesArray : [CNLabeledValue] = []
但我無法弄清楚如何做到這一點的斯威夫特3
所使用的iOS中的9到工作代碼爲:如何使用Swift 3聲明一個類型爲'CNLabeledValue'的空數組?
var valuesArray : [CNLabeledValue] = []
但我無法弄清楚如何做到這一點的斯威夫特3
這是解決方案:
var phoneNumbers : [CNLabeledValue<CNPhoneNumber>] = []
由於OOPer在this post指出:
CNLabeledValue
的泛型參數是德分類爲<ValueType : NSCopying, NSSecureCoding>
。因此,在這種情況下,您可以選擇符合NSCopying
和NSSecureCoding
的任何類型。NSString
確實和String
不確定。
被引用的句子可能會導致您的案例中的一些誤解。您可能需要爲「ValueType」選擇一種適當的類型 - 在您的情況下,它是「CNPhoneNumber」。 「任何類型」部分不適用於您的問題。 – OOPer
這樣的事情(例如用填寫手機號碼):
let phonesArray : [Phones] = phones!
var phonesToAdd = [CNLabeledValue]()
for phone in phonesArray
{
if let phoneT = phone.phoneType
{
if phoneT.lowercaseString == "mobile"
{
let mobilePhone = CNLabeledValue(label: "mobile",value: CNPhoneNumber(stringValue: phone.phone))
phonesToAdd.append(mobilePhone)
}
if phoneT.lowercaseString == "landline"
{
let landlinePhone = CNLabeledValue(label: "landline",value: CNPhoneNumber(stringValue: phone.phone))
phonesToAdd.append(landlinePhone)
}
}
}
contactData.phoneNumbers = phonesToAdd
'CNLabeledValue'是斯威夫特3泛型類,所以你不能有型CNLabeledValue'的'東西 - 它必須是'CNLabeledValue'。其中的「什麼」取決於你對這個數組所做的事情,所以如果沒有關於你的數組如何使用的大圖,沒有太多的幫助。 –
rickster
我正在使用聯繫人框架,所以是一個CNPhoneNumber數組。 –
'var valuesArray:[CNLabeledValue] = []'解決問題。 –
Chandan