码迷,mamicode.com
首页 > 移动开发 > 详细

IOS开发中使用CNContact对通讯录增删改查

时间:2016-05-06 23:12:09      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:

IOS开发中使用CNContact对通讯录增删改查

首先当然是把CNcontact包含在工程中:

1 @import Contacts;

 

 

1、下面是增加联系人的程序段:

 1 CNMutableContact * contact = [[CNMutableContact alloc]init];
 2     contact.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"22"]);
 3     //设置名字
 4     contact.givenName = @"三强";
 5     //设置姓氏
 6     contact.familyName = @"";
 7     CNLabeledValue *homeEmail = [CNLabeledValue labeledValueWithLabel:CNLabelHome value:@"316045346@qq.com"];
 8     CNLabeledValue *workEmail =[CNLabeledValue labeledValueWithLabel:CNLabelWork value:@"316045346@qq.com"];
 9     contact.emailAddresses = @[homeEmail,workEmail];
10     //家庭
11     CONTACTS_EXTERN NSString * const CNLabelHome                             NS_AVAILABLE(10_11, 9_0);
12     //工作
13     CONTACTS_EXTERN NSString * const CNLabelWork                             NS_AVAILABLE(10_11, 9_0);
14     //其他
15     CONTACTS_EXTERN NSString * const CNLabelOther                            NS_AVAILABLE(10_11, 9_0);
16     
17     // 邮箱地址
18     CONTACTS_EXTERN NSString * const CNLabelEmailiCloud                      NS_AVAILABLE(10_11, 9_0);
19     
20     // url地址
21     CONTACTS_EXTERN NSString * const CNLabelURLAddressHomePage               NS_AVAILABLE(10_11, 9_0);
22     
23     // 日期
24     CONTACTS_EXTERN NSString * const CNLabelDateAnniversary                  NS_AVAILABLE(10_11, 9_0);
25     contact.phoneNumbers = @[[CNLabeledValue labeledValueWithLabel:CNLabelPhoneNumberiPhone value:[CNPhoneNumber phoneNumberWithStringValue:@"12344312321"]]];
26     CNMutablePostalAddress * homeAdress = [[CNMutablePostalAddress alloc]init];
27     homeAdress.street = @"贝克街";
28     homeAdress.city = @"伦敦";
29     homeAdress.state = @"英国";
30     homeAdress.postalCode = @"221B";
31     contact.postalAddresses = @[[CNLabeledValue labeledValueWithLabel:CNLabelHome value:homeAdress]];
32     NSDateComponents * birthday = [[NSDateComponents  alloc]init];
33     birthday.day=7;
34     birthday.month=5;
35     birthday.year=1992;
36     contact.birthday=birthday;
37     
38     
39     
40     
41     //    //初始化方法
42     CNSaveRequest * saveRequest = [[CNSaveRequest alloc]init];
43     //    添加联系人(可以)
44     [saveRequest addContact:contact toContainerWithIdentifier:nil];
45     //    写入
46     CNContactStore * store = [[CNContactStore alloc]init];
47     [store executeSaveRequest:saveRequest error:nil];

 

 

2、下面是删除联系人的程序段,在苹果的开发文档中是这么描述的:

技术分享

其中的contact参数是要被删除的联系人,也就以为这这个也就意味着这个联系人之前在通讯录存在,也就是说它不是我们新建的一个联系人对象,而是从通讯录中查出来的一个联系人对象,所以我们先要去查找联系人,这样的话先创建一个谓词,然后去查找,找到之后再执行删除,以下是程序段:

 1 //    CNContactStore * store = [[CNContactStore alloc]init];
 2 //    //检索条件,检索所有名字中GivenName是W的联系人
 3 //    NSPredicate * predicate = [CNContact predicateForContactsMatchingName:@"W"];
 4 //    //提取数据
 5 //    NSArray * contacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:@[CNContactGivenNameKey] error:nil];
 6 //    CNMutableContact *contact1 = [contacts objectAtIndex:0];
 7 //    
 8 //    
 9 ////    //初始化方法
10 //    CNSaveRequest * saveRequest = [[CNSaveRequest alloc]init];
11 //
12 //    //删除联系人(不行)
13 //    [saveRequest deleteContact:contact1];

 

 

3、关于更新联系人,暂时有问题。

 

IOS开发中使用CNContact对通讯录增删改查

标签:

原文地址:http://www.cnblogs.com/jiwangbujiu/p/5467302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!