所使用的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