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:@"[email protected]"]; 8 CNLabeledValue *workEmail =[CNLabeledValue labeledValueWithLabel:CNLabelWork value:@"[email protected]"]; 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、关于更新联系人,暂时有问题。
时间: 2024-10-24 10:48:44