【问题标题】:AddressBook and Contacts framework in iOS 8.0 and 9.0iOS 8.0 和 9.0 中的地址簿和联系人框架
【发布时间】:2016-05-18 02:42:43
【问题描述】:

我正在尝试构建一个从用户联系人中获取联系人列表并将其呈现在应用程序的自定义 UI 中的应用程序。我想支持 iOS 8 和 iOS9 但问题是地址簿框架的方法在 iOS9 中已弃用,联系人框架将不支持 iOS 8.0。有没有办法可以同时支持 8 和 9?

提前致谢!

【问题讨论】:

    标签: ios8 ios9 addressbook contacts-framework


    【解决方案1】:

    如果你想同时支持两个 iOS 版本,你必须实现这两个代码。

    您必须检查 iOS 版本如下,Objective-C

    NSComparisonResult order = [[UIDevice currentDevice].systemVersion compare: @"9.0" options: NSNumericSearch];
    if (order == NSOrderedSame || order == NSOrderedDescending) {
        // OS version >= 9.0
        // Call contact address book function
    } else {
        // OS version < 9.0
        // Call address book function
    }
    

    为了快速,

    if #available(iOS 9.0, *) {
        // OS version >= 9.0
        // Call contact address book function
    } else {
        // OS version < 9.0
        // Call address book function
    }
    

    【讨论】:

    • 我们可以使用任何其他方法吗?我不想写两次相同的代码。
    • 有一种方法。如果您支持 iOS 8 及更高版本,则可以使用 ABAddressBook。它也适用于 iOS 9。但是当您将来删除 iOS 8 支持时,您必须将 ABAddressBook 替换为 CNContactStore。就我个人而言,我更愿意在编写这两个代码时考虑到未来。
    【解决方案2】:

    除了检查 iOS 8 和 iOS 9 来调用函数,

    确保将 iOS 8 上不可用的框架设置为可选

    【讨论】:

    • 我的项目中缺少这个可选的东西,谢谢哥们:)
    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多