код, который используется для работы в прошивкой 9 был:Как объявить пустой массив типа CNLabeledValue с помощью Swift 3?
var valuesArray : [CNLabeledValue] = []
Но я не могу понять, как сделать это в Swift 3.
код, который используется для работы в прошивкой 9 был:Как объявить пустой массив типа CNLabeledValue с помощью Swift 3?
var valuesArray : [CNLabeledValue] = []
Но я не могу понять, как сделать это в Swift 3.
Это решение:
var phoneNumbers : [CNLabeledValue<CNPhoneNumber>] = []
Как OOPer отметил в this post:
CNLabeledValue
«s общий параметр де как<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' является общим классом в Swift 3, так что вы не можете иметь что-то типа' CNLabeledValue' - это должен быть 'CNLabeledValue'. Какое «что-то» это зависит от того, что вы делаете с этим массивом, поэтому мы не можем предоставить больше помощи, не имея более подробной информации о том, как используется ваш массив. –
rickster
Я работаю с Framework контактов, так что это массив CNPhoneNumber. –
'var valuesArray: [CNLabeledValue] = []' Решить проблемы. –
Chandan