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

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

IOS开发中使用CNContact对通讯录增删改查的相关文章

Sqlserver 实际开发中常见的数据库操作增删改查----增

注意我说的常见查询,可不是简单到一个表得增删改查,做过实际开发得人都知道,在实际开发中,真正牵扯到一个表得增删改查只能说占很小得一部分,大多都是好几个表的关联操作的. 下面我就说一下我在实际开发中经常用到得一些增删改查方式.(首先我还要说一下,就是我虽然能写,但是我不知道这种查询方式叫什么类型查询,毕竟数据库这块以前都没干过,做.net开发也就一年左右,大家看我写的博客也会知道,以前搞前端U3D游戏开发的,不接触数据库,取数据调后台接口就行了,其他不用管.所以没做.net前,我也就是会大学时候学

Sqlserver 实际开发中常见的数据库操作增删改查----删

--我们就以院系,班级,学生来举例. create TABLE [dbo].YuanXi ( Id int IDENTITY(1,1) NOT NULL,--学校id 自增量 YuanXiName varchar(50) null, --院系名字 ) create TABLE [dbo].Class ( Id int IDENTITY(1,1) NOT NULL,--班级id 自增量 YuanXiID int null,--院系id ClassName varchar(50) null --班级

Sqlserver 实际开发中常见的数据库操作增删改查----改

--我们就以院系,班级,学生来举例. create TABLE [dbo].YuanXi ( Id int IDENTITY(1,1) NOT NULL,--学校id 自增量 YuanXiName varchar(50) null, --院系名字 ) create TABLE [dbo].Class ( Id int IDENTITY(1,1) NOT NULL,--班级id 自增量 YuanXiID int null,--院系id ClassName varchar(50) null --班级

【Mysql】Java中对Mysql数据库的增删改查、Java的System类

这部分也是所谓JDBC.网站数据源的内容,把名字弄得很高深似得,实际上只是Java中对Mysql数据库的增删改查的内容.非常简单,之前写了这么多Mysql的内容,没好好总结一下,实在是不应该.今天就实现一个Java中对Mysql数据库的增删改查,随便带点Java取出当前系统的系统名与系统时间的知识,完成一个还算有点意思的小例子. 一.基本目标 首先,在Mysql数据库中有一张名为testtable的空表,id为自增列,username,class都是文本列,但是class里面都存放数字,也就是整

基于SpringBoot开发一个Restful服务,实现增删改查功能

在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练.不过在看了很多关于SpringBoot的介绍之后,并没有想象中的那么难,于是开始准备学习SpringBoot. 在闲暇之余的时候,看了下SpringBoot实战以及一些大神关于SpringBoot的博客之后,开始写起了我的第一个SpringBoot的项目.在能够对SpringBoot进行一些简单的开发Re

Hibernate中关联关系的CRUD(增删改查)

关联关系的CRUD(增删改查) 一.增加数据 1.User和Group的关联关系:User对Group是Many-To-One,Group对User是One-To-Many 2.默认情况下,不会自动保存尚未保存关联的对象.因为对象没有保存的情况下,对象是Transient状态,此时数据库中并没有存储,所以获取不到该对象. 3.使用级联cascade方式可以自动将关联的对象进行存储.其取值有ALL,PERSIST,REFRESH,REMOVE,DETACH,MERGE这几种取值.其中,ALL表示在

Django中ORM对数据库的增删改查操作

什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在Django中定义一个类,就是在数据库中创建一张表格.在Django中实例化一个类的对象,就是在数据库中增加了一条记录.在Django中删除一个对象,就是在数据库中删除了一条记录.在DJango中更改一个对象的属性,就是在数据库中修改一条记录的值.在django中遍历查询对象的属性值,就是在数据库中查询记录的值.

ObjectC----实现简单的通讯录(增删改查)

// Created By 郭仔 2015年04月09日21:27:50 经过两天的低迷,状态在慢慢的回归了,生活还要继续,人生还需奋斗! 祝:好人一生平安!!! ======================================================================== 题目描述: 1.创建AddressBook类. 1)使?用字典作为容器,字典的Key值为分组名(姓名?首字?母,?大写),value值为数组,数组 中存放联系?人(Person实例).(5分

sqlite-SQL-对表中的数据记录进行增删改查操作

1 添加数据记录 insert into table_name(field1, field2, ...) values(val1, val2, ...); valx为需要存入字段的值. 例,往学生信息表添加数据: Insert into student_info(stu_no, name) values(0001, alex); 注意: INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'Califor