Ios8 iOS 8.0和9.0中的通讯录和联系人框架

Ios8 iOS 8.0和9.0中的通讯录和联系人框架,ios8,ios9,addressbook,contacts-framework,Ios8,Ios9,Addressbook,Contacts Framework,我正在尝试构建一个应用程序,从用户联系人获取联系人列表,并将其呈现在应用程序的自定义UI中。我想支持ios8和iOS9,但问题是iOS9中不推荐使用AddressBook框架的方法,而Contacts框架将不支持ios8.0。有什么方法可以同时支持8和9吗 提前谢谢 如果要同时支持两个iOS版本,就必须实现这两个代码 对于Objective-C,您必须检查以下iOS版本 NSComparisonResult order = [[UIDevice currentDevice].systemVers

我正在尝试构建一个应用程序,从用户联系人获取联系人列表,并将其呈现在应用程序的自定义UI中。我想支持ios8和iOS9,但问题是iOS9中不推荐使用AddressBook框架的方法,而Contacts框架将不支持ios8.0。有什么方法可以同时支持8和9吗


提前谢谢

如果要同时支持两个iOS版本,就必须实现这两个代码

对于Objective-C,您必须检查以下iOS版本

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
}
NSComparisonResult order=[[UIDevice currentDevice]。系统版本比较:@“9.0”选项:NSNumericSearch];
if(order==sensorderedName | | order==sensorderedescending){
//操作系统版本>=9.0
//呼叫联系人通讯簿功能
}否则{
//操作系统版本<9.0
//呼叫通讯簿功能
}
对于斯威夫特

if #available(iOS 9.0, *) {
    // OS version >= 9.0
    // Call contact address book function
} else {
    // OS version < 9.0
    // Call address book function
}
if#可用(iOS 9.0,*){
//操作系统版本>=9.0
//呼叫联系人通讯簿功能
}否则{
//操作系统版本<9.0
//呼叫通讯簿功能
}

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

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


我们还可以使用其他方法吗?我不想写两次相同的代码,只有一种方法。如果您支持iOS 8及以上版本,则可以使用ABAddressBook。它在iOS 9中也能工作。但当您将来删除iOS 8支持时,您必须用CNContactStore替换ABAddressBook。就我个人而言,我更愿意在写这两个代码时考虑到未来。这个可选的东西在我的项目中丢失了,谢谢,伙计:)