0

曾经在 iOS 9 中工作的代码是:

var valuesArray : [CNLabeledValue] = []

但我不知道如何在 Swift 3 中做到这一点。

4

2 回答 2

2

这是解决方案:

var phoneNumbers : [CNLabeledValue<CNPhoneNumber>] = []

正如 OOPer 在这篇文章中指出的那样:

CNLabeledValue的泛型参数声明为<ValueType : NSCopying, NSSecureCoding>。因此,在这种情况下,您可以选择任何符合NSCopying和的类型NSSecureCodingNSString做和String不做。

于 2016-09-24T00:53:56.790 回答
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
于 2016-09-24T05:59:31.193 回答