如何声明一个类型为CNLabeledValue'的空数组?使用Swift 3?

时间:2016-09-23 21:13:11

标签: ios swift3 contacts-framework

以前在iOS 9中工作的代码是:

var valuesArray : [CNLabeledValue] = []

但是我无法弄清楚如何在Swift 3中做到这一点。

2 个答案:

答案 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