ContactsKit是一个易于使用的联系人管理库,支持iOS和Mac OS X。
要使用CocoaPods将ContactsKit集成到Xcode项目中,请在Podfile中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
pod 'ContactsKit'
然后,运行以下命令
$ pod install
将ContactsKit导入您的项目
#import <ContactsKit/ContactsKit.h>
首先您必须创建一个CKAddressBook实例,并请求访问以获取联系人。用户仅在第一次请求访问时被提示。
CKAddressBook *addressBook = [[CKAddressBook alloc] init];
[addressBook requestAccessWithCompletion:^(NSError *error) {
if (! error)
{
// Everything fine you can get contacts
}
else
{
// The app doesn't have a permission for getting contacts
// You have to go to the settings and turn on contacts
}
}];
然后如果获得访问权限,您可以获取联系人
// Get fields from the mask
CKContactField mask = CKContactFieldFirstName | CKContactFieldLastName | CKContactFieldBirthday;
// Final sort of the contacts array
NSArray *sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"firstName" ascending:YES] ];
[addressBook contactsWithMask:mask uinify:NO sortDescriptors:sortDescriptors
filter:nil completion:^(NSArray *contacts, NSError *error) {
if (! error)
{
// Do someting with contacts
}
}];
或者,通过使用CKAddressBookDelegate
协议完成相同操作
addressBook.fieldsMask = CKContactFieldFirstName | CKContactFieldLastName | CKContactFieldBirthday;
addressBook.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"firstName" ascending:YES] ];
addressBook.delegate = self;
[addressBook fetchContacts];
然后将调用协议方法
#pragma mark - CKAddressBookDelegate
- (void)addressBook:(CKAddressBook *)addressBook didFetchContacts:(NSArray<CKContact *> *)contacts
{
// Do something with contacts
}