免费试用

中文化、本土化、云端化的在线跨平台软件开发工具,支持APP、电脑端、小程序、IOS免签等等

ios开发开获取通讯录

在iOS开发中,获取通讯录是一个常见的需求。本文将介绍在iOS平台上如何获取通讯录。

iOS平台上获取通讯录的方法主要有两种:ABAddressBook和CNContactStore。其中,ABAddressBook是iOS 9之前的API,CNContactStore是iOS 9之后的API。

ABAddressBook

ABAddressBook是Address Book框架中的一个类,它提供了访问通讯录的功能。使用ABAddressBook获取通讯录的步骤如下:

1. 导入Address Book框架

在代码中引入Address Book框架:

```

#import

```

2. 请求访问权限

在iOS 6及以上版本中,需要用户授权才能访问通讯录。可以调用ABAddressBookRequestAccessWithCompletion函数请求访问权限:

```

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);

ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {

if (granted) {

// 授权成功,获取通讯录

[self getContactsFromAddressBook:addressBook];

} else {

// 授权失败

}

});

```

3. 获取通讯录

授权成功后,可以使用ABAddressBookCopyArrayOfAllPeople函数获取通讯录中的所有联系人:

```

- (void)getContactsFromAddressBook:(ABAddressBookRef)addressBook {

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);

CFIndex count = CFArrayGetCount(allPeople);

for (int i = 0; i < count; i++) {

ABRecordRef person = CFArrayGetValueAtIndex(allPeople, i);

// 处理联系人信息

}

CFRelease(allPeople);

}

```

在获取每个联系人的信息之前,需要判断该联系人是否有电话号码:

```

if (ABRecordGetRecordType(person) == kABPersonType) {

ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);

CFIndex phoneCount = ABMultiValueGetCount(phones);

if (phoneCount > 0) {

// 处理联系人信息

}

CFRelease(phones);

}

```

CNContactStore

CNContactStore是Contacts框架中的一个类,它提供了访问通讯录的功能。使用CNContactStore获取通讯录的步骤如下:

1. 导入Contacts框架

在代码中引入Contacts框架:

```

#import

```

2. 请求访问权限

在iOS 9及以上版本中,需要用户授权才能访问通讯录。可以调用CNContactStore的requestAccessForEntityType:completionHandler:方法请求访问权限:

```

CNContactStore *contactStore = [[CNContactStore alloc] init];

[contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {

if (granted) {

// 授权成功,获取通讯录

[self getContactsFromContactStore:contactStore];

} else {

// 授权失败

}

}];

```

3. 获取通讯录

授权成功后,可以使用CNContactFetchRequest类获取通讯录中的所有联系人:

```

- (void)getContactsFromContactStore:(CNContactStore *)contactStore {

NSArray *keys = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey];

CNContactFetchRequest *request = [[CNContactFetchRequest alloc] initWithKeysToFetch:keys];

[contactStore enumerateContactsWithFetchRequest:request error:nil usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {

// 处理联系人信息

}];

}

```

在获取每个联系人的信息之前,需要判断该联系人是否有电话号码:

```

if (contact.phoneNumbers.count > 0) {

// 处理联系人信息

}

```

总结

ABAddressBook和CNContactStore都可以用于获取iOS平台上的通讯录。在iOS 9及以上版本中,推荐使用CNContactStore。获取通讯录的过程中,需要注意用户授权和联系人信息的处理。


相关知识:
android打包生成apk
Android是一款流行的移动操作系统,由Google开发。开发者可以使用Android Studio等工具进行开发,最终生成的应用程序需要打包生成APK文件。本文将介绍Android打包生成APK的原理和详细步骤。一、打包原理Android应用程序包(A
2023-04-06
android使用webservice
Web服务是一种可用于在网络上交换信息的软件系统。它们使用标准化的XML消息格式来传输数据,并通常使用HTTP作为通信协议。Web服务可以由任何语言编写,因此可以使用各种语言和平台之间进行交互。在Android中,我们可以使用Web服务来获取数据并将其用于
2023-04-06
androidnfc开发
NFC(Near Field Communication,近场通信)是一种短距离无线通信技术,它可以让两个设备之间进行近距离通信。在Android系统中,开发者可以使用NFC技术来实现一些很有趣的功能,比如门禁系统、电子钱包、智能标签等等。本文将介绍NFC
2023-04-06
一键生成app
一键生成app是指使用一种工具或平台,能够快速将一个网站或应用程序转化为手机应用程序,让用户可以在手机上直接使用。这种技术已经成为了很多企业和个人创业者的选择,因为它能够大大降低开发成本和时间,并且能够快速推出产品。一键生成app的原理其实很简单,主要是通
2023-04-06
iOS 永久免签书签版
iOS 永久免签书签版是指通过一些特殊的手段,在不需要越狱的情况下,让用户可以在 iOS 设备上安装未经过苹果签名的应用程序。这个方法的原理是通过创建一个特殊的书签,利用 iOS 系统的漏洞来实现应用程序的安装和启动,从而实现免签安装应用程序的目的。具体来
2023-04-06
一门云app
云APP是一种基于云计算技术的应用程序。它不是在用户的设备上运行,而是在云端服务器上运行。用户只需要通过网络连接访问云APP,就可以享受到和本地APP一样的功能和服务。云APP的优势在于它能够将计算、存储、网络等资源集中在云端,从而提高了应用程序的性能、可
2023-04-06
apk 提取签名
APK(Android Application Package)是Android系统中应用程序的安装包格式,其中包含了应用程序的代码、资源、配置文件和签名等信息。APK的签名是为了验证应用程序的完整性和安全性,防止应用程序被篡改和恶意攻击。本文将介绍APK
2023-04-06
x5内核为啥现在安装不了
X5内核是一款由腾讯公司开发的浏览器内核,原本是为了提高腾讯公司旗下的QQ浏览器的性能而研发的。X5内核在性能和稳定性方面都有着很好的表现,因此也被其他一些浏览器厂商采用。然而,最近一段时间,一些用户反映在安装X5内核时遇到了问题,无法正常安装。那么究竟是
2023-04-06
安卓apk生成
安卓apk生成是指将安卓应用程序打包成一个安装包,以便用户能够下载并安装在他们的设备上。在这个过程中,开发人员需要将应用程序的所有文件和资源打包成一个单一的文件,该文件包含了应用程序的所有代码、图片、声音和其他资源。下面是安卓apk生成的详细介绍:1. 开
2023-04-06
baidu apk
百度是中国最大的搜索引擎之一,其拥有着丰富的资源和用户群体,成为了中国互联网的重要组成部分。百度推出了自己的移动应用程序,称为“百度搜索”,这个应用程序可以在Android和iOS设备上使用。在本文中,我们将介绍百度搜索apk的原理和详细介绍。第一部分:原
2023-04-06
apk在线生成
APK在线生成是指通过一些在线应用程序,用户可以将其应用程序转换为APK文件格式并下载到他们的设备上。这种方法可以帮助开发人员和非技术人员将他们的应用程序转换为APK文件,以便在Android设备上使用。APK在线生成的原理是将应用程序打包成一个APK文件
2023-04-06
ios 开发进阶
iOS 开发进阶需要掌握一些更深入的原理和技术,以下是一些重要的方面:1. iOS 系统架构iOS 系统由四个主要层次组成:核心操作系统层、核心服务层、媒体层和应用层。核心操作系统层包括内核、文件系统、网络协议栈和设备驱动程序等。核心服务层提供了许多系统服
2023-04-06