iOS通讯录读写

原创 2016年06月01日 15:03:56

首先引入addressBook.framework addressBookUI.framework框架
首先申请读写权限 
// Request authorization to Address Book
    ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
    
    if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
        ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
            // First time access has been granted, add the contact
        });
    }
    else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
        // The user has previously given access, add the contact
    }
    else {
        // The user has previously denied access
        // Send an alert telling user to change privacy setting in settings app
    }



添加通讯录

ABAddressBookRef iPhoneAddressBook = ABAddressBookCreate();
        ABRecordRef newPerson = ABPersonCreate();
        
        CFErrorRef error = NULL;
        
        ABRecordSetValue(newPerson, kABPersonFirstNameProperty, (__bridge CFTypeRef)(p.name), &error);
        
        //phone number
        ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
        ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFTypeRef)(p.number), kABPersonPhoneMainLabel, NULL);
        //        ABMultiValueAddValueAndLabel(multiPhone, @"1-123-456-7890", kABPersonPhoneMobileLabel, NULL);
        //        ABMultiValueAddValueAndLabel(multiPhone, @"1-987-654-3210", kABOtherLabel, NULL);
        ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone,&error);
        CFRelease(multiPhone);
        
        ABAddressBookAddRecord(iPhoneAddressBook, newPerson, &error);
        ABAddressBookSave(iPhoneAddressBook, &error);
        if (error != NULL)
        {
            NSLog(@"Danger Will Robinson! Danger!%@", error);
        }

删除通讯录


//打开电话本数据库
    ABAddressBookRef addressRef=ABAddressBookCreate();
    
    //返回所有联系人到一个数组中
    CFArrayRef personArray = ABAddressBookCopyArrayOfAllPeople(addressRef);
    
    //返回联系人数量
    CFIndex personCount = ABAddressBookGetPersonCount(addressRef);
    
    //循环读取每个联系人
    for (int i =0;i<personCount;i++){
        
        //得到当前联系人
        
        ABRecordRef personRef=CFArrayGetValueAtIndex(personArray, i);
        
        NSString *firstName = (__bridge NSString *)ABRecordCopyValue(personRef, kABPersonFirstNameProperty);
        
        
        ABMultiValueRef phones = (ABMultiValueRef) ABRecordCopyValue(personRef, kABPersonPhoneProperty);
        
        NSString *phone;
        
        for(int i = 0 ;i < ABMultiValueGetCount(phones); i++)
        {
            phone = (__bridge NSString *)ABMultiValueCopyValueAtIndex(phones, i);
        }
        
        
        NSLog(@"%@-%@", firstName, phone);
        
        for (Person *p in self.array) {
            if ([p.name isEqual:firstName] && [p.number isEqual:phone]) {
                //删除联系人
                ABAddressBookRemoveRecord(addressRef, personRef, nil);
                
            }
        }
        CFRelease(personRef);
    }




版权声明:

【C语言】实现一个通讯录(三:加入文件读写)

我们知道,在前两次实现中,每次测试都需要不停的添加联系人信息,而且一旦退出程序,无法保存已经输入的联系人信息。于是我们考虑到用文件将联系人信息保存起来,并且还可以在运行程序的时候将已有的联系人信息载入...

安卓学习笔记--通过ContentProvider读写系统的通讯录

因为本次主要是测试,所以要先在配置清单中声明权限 步骤一:配置AndroidManifest.xml ...
  • yw1688
  • yw1688
  • 2015年03月26日 17:17
  • 437

Unity下跨windows和ios读写Excel文件

  • 2017年11月14日 15:43
  • 173KB
  • 下载

读写ios的文件

  • 2012年11月29日 13:36
  • 122KB
  • 下载

ios 通讯录“写”操作大全

1.需要引入AddressBook.framework框架 2.iPhone通讯录的增加联系人的操作,代码如下(放到项目中可直接运行): // 初始化一个ABAddressBookRef对象,...
  • KOmyself
  • KOmyself
  • 2012年10月15日 13:27
  • 10835

iOS中plist文件读写

  • 2014年11月22日 14:52
  • 78KB
  • 下载

IOS 应用文件数据的读写分析

作者:朱克锋 邮箱:zhukefeng@iboxpay.com 转载请注明出处:http://blog.csdn.net/linux_zkf iPhone OS提供了如下几种读、写、...

ios 读写iOS系统中日历事件

  • 2015年01月19日 16:00
  • 70KB
  • 下载

IOS iPhone 开发中的文件读写及数据存储(一)

数据的存储无疑是软件开发中的重要课题。本文给初学者介绍下iphone开发中常见的文件读写,当然,我也是初学者~ iOS的文件存储采用的是“沙箱机制”,也就是应用程序只能访问自己的文件目录,每个应用程...
  • wxq888
  • wxq888
  • 2012年11月16日 16:08
  • 23802
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS通讯录读写
举报原因:
原因补充:

(最多只允许输入30个字)