以前在iOS 9中工作的代码是:
var valuesArray : [CNLabeledValue] = []
但是我无法弄清楚如何在Swift 3中做到这一点。
答案 0 :(得分:2)
这是解决方案:
String email = mLoginEmailField .getText().toString().trim();
正如OOPer在this post中指出的那样:
var phoneNumbers : [CNLabeledValue<CNPhoneNumber>] = []
的通用参数声明为CNLabeledValue
。因此,在这种情况下,您可以选择符合<ValueType : NSCopying, NSSecureCoding>
和NSCopying
的任何类型。NSSecureCoding
确实有NSString
,而String
没有。
答案 1 :(得分:0)
类似这样的事情(例如填写电话号码):
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