iOS <9替代CNLabeledValue是什么?

时间:2019-10-22 12:33:39

标签: swift uitableview contacts addressbook didselectrowatindexpath

我已经实现了ContactAddressBook的框架,以便从通讯录中为iOS上方和下方的用户获取联系人。9。像这样访问另一个view来查看我在CNLabeledValue中使用过didSelectRowAt的联系信息:

if #available(iOS 9.0, *) {
    switch((number as! CNLabeledValue<CNPhoneNumber> ).label){
        case CNLabelPhoneNumberMobile:phoneContact?.mobilePhone = (number as! CNLabeledValue<CNPhoneNumber>).value.stringValue
        case CNLabelPhoneNumberiPhone:phoneContact?.mobilePhone = (number as! CNLabeledValue<CNPhoneNumber>).value.stringValue
        case CNLabelPhoneNumberMain:phoneContact?.mobilePhone = (number as! CNLabeledValue<CNPhoneNumber>).value.stringValue
        case CNLabelHome:phoneContact?.homePhone = (number as! CNLabeledValue<CNPhoneNumber>).value.stringValue
        case CNLabelWork:phoneContact?.workPhone = (number as! CNLabeledValue<CNPhoneNumber>).value.stringValue
        default:phoneContact?.mobilePhone = (number as! CNLabeledValue<CNPhoneNumber>).value.stringValue
        }
} else {
   // Fallback on earlier versions

   }

ContactBook代码有效,但是在CNLabeledValue之前的iOS 9之前使用了什么?有没有要使用的框架?

1 个答案:

答案 0 :(得分:1)

iOS 9中添加了Contacts框架(CN*)。在此之前,我们使用了AddressBook framework。那里没有与CNLabledValue完全相同的内容。最接近的是ABMultiValue,它是CoreFoundation类型。

请注意,当前文档经常建议其中某些类型仅在macOS 12+中存在,但这是不正确的。其中许多确实存在于旧版本的iOS中。