IOS添加通讯录
【摘要】
-(void)touchSaveLocal{ //ABAddressBookRef addressBook = ABAddressBookCreate(); //初始化一个record ABRecordRef person = ABPersonCreate(); ABAddressBookRef addr...
-
-(void)touchSaveLocal
-
{
-
//ABAddressBookRef addressBook = ABAddressBookCreate();
-
-
//初始化一个record
-
ABRecordRef person = ABPersonCreate();
-
ABAddressBookRef addressBook = nil;
-
-
if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0)
-
{
-
addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
-
//等待同意后向下执行
-
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
-
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error)
-
{
-
dispatch_semaphore_signal(sema);
-
});
-
-
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
-
-
}
-
else
-
{
-
addressBook = ABAddressBookCreate();
-
}
-
//这是一个空的记录,或者说是没有任何信息的联系人
-
//下面给这个人 添加一个名字
-
NSString *firstName = self.detailNode.userName;
-
ABRecordSetValue(person, kABPersonFirstNameProperty, (CFStringRef)CFBridgingRetain(firstName), NULL);
-
-
//phone
-
ABMultiValueRef phone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
-
ABMultiValueAddValueAndLabel(phone, CFBridgingRetain(self.detailNode.phone), kABPersonPhoneMainLabel, NULL);//添加移动号码0
-
ABRecordSetValue(person, kABPersonPhoneProperty, phone, NULL);
-
-
//compay
-
NSString *gongsi = self.detailNode.company;
-
ABRecordSetValue(person, kABPersonOrganizationProperty, (CFStringRef)CFBridgingRetain(gongsi), NULL);
-
-
//将新的记录,添加到通讯录中
-
-
ABAddressBookAddRecord(addressBook, person, NULL);
-
-
//通讯录执行保存
-
-
ABAddressBookSave(addressBook, NULL);
-
-
//不说了,你懂的~
-
-
if(addressBook)
-
-
CFRelease(addressBook);
-
-
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"添加成功" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
-
[alert show];}
文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。
原文链接:zzzili.blog.csdn.net/article/details/23373249
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)