CNLabeledValue 的 iOS < 9 替代品是什么?

What's the iOS < 9 alternative to CNLabeledValue?

我已经实现了 ContactAddressBook 的框架,以便从联系簿中获取上面和下面的用户的联系人 iOS 9. 为了按 a行访问另一个 view 以查看我在 didSelectRowAt 中使用 CNLabeledValue 的联系信息,如下所示:

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 代码有效,但在 iOS 9 之前 CNLabeledValue 之前使用了什么?有没有可以使用的框架?

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

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

的旧版本中