美文网首页
iOS Contact框架功能研究

iOS Contact框架功能研究

作者: 十元不卖 | 来源:发表于2017-11-01 15:51 被阅读40次

兄弟们,直接复制,感谢度娘,感谢谷哥!!!

1.读取联系人通讯录

/**

*  读取联系人通讯录

*/

-(NSMutableArray*)getContactList{

NSMutableArray *array = [NSMutableArray array];

//    1.获取授权状态

CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];

//      2.判断授权状态,如果不是已经授权,则直接返回

if (status != CNAuthorizationStatusAuthorized) {

return nil;

}

// 3.创建通信录对象

CNContactStore *contactStore = [[CNContactStore alloc] init];

// 4.创建获取通信录的请求对象

// 4.1.拿到所有打算获取的属性对应的key

NSArray *keys = @[CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey,CNContactImageDataKey];

// 4.2.创建CNContactFetchRequest对象

CNContactFetchRequest *request = [[CNContactFetchRequest alloc] initWithKeysToFetch:keys];

// 5.遍历所有的联系人

[contactStore enumerateContactsWithFetchRequest:request error:nil usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {

[array addObject:contact];

}

];

return array;

}

2.增加联系人

// 创建通讯录对象

CNMutableContact * contact = [[CNMutableContact alloc]init];

contact.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"22"]);

//设置名字

contact.givenName = @"三强";

//设置姓氏

contact.familyName = @"钱";

CNLabeledValue *homeEmail = [CNLabeledValue labeledValueWithLabel:CNLabelHome value:@"316045346@qq.com"];

CNLabeledValue *workEmail =[CNLabeledValue labeledValueWithLabel:CNLabelWork value:@"316045346@qq.com"];

contact.emailAddresses = @[homeEmail,workEmail];

//家庭

CONTACTS_EXTERN NSString * const CNLabelHome                            NS_AVAILABLE(10_11, 9_0);

//工作

CONTACTS_EXTERN NSString * const CNLabelWork                            NS_AVAILABLE(10_11, 9_0);

//其他

CONTACTS_EXTERN NSString * const CNLabelOther                            NS_AVAILABLE(10_11, 9_0);

// 邮箱地址

CONTACTS_EXTERN NSString * const CNLabelEmailiCloud                      NS_AVAILABLE(10_11, 9_0);

// url地址

CONTACTS_EXTERN NSString * const CNLabelURLAddressHomePage              NS_AVAILABLE(10_11, 9_0);

// 日期

CONTACTS_EXTERN NSString * const CNLabelDateAnniversary                  NS_AVAILABLE(10_11, 9_0);

contact.phoneNumbers = @[[CNLabeledValue labeledValueWithLabel:CNLabelPhoneNumberiPhone value:[CNPhoneNumber phoneNumberWithStringValue:@"12344312321"]]];

CNMutablePostalAddress * homeAdress = [[CNMutablePostalAddress alloc]init];

homeAdress.street = @"贝克街";

homeAdress.city = @"伦敦";

homeAdress.state = @"英国";

homeAdress.postalCode = @"221B";

contact.postalAddresses = @[[CNLabeledValue labeledValueWithLabel:CNLabelHome value:homeAdress]];

NSDateComponents * birthday = [[NSDateComponents  alloc]init];

birthday.day=7;

birthday.month=5;

birthday.year=1992;

contact.birthday=birthday;

//    //初始化方法

CNSaveRequest * saveRequest = [[CNSaveRequest alloc]init];

//    添加联系人(可以)

[saveRequest addContact:contact toContainerWithIdentifier:nil];

//    写入

CNContactStore * store = [[CNContactStore alloc]init];

[store executeSaveRequest:saveRequest error:nil];


3.删除联系人

4.更新联系人

CNContactStore * store =[[CNContactStore alloc]init];

//检索条件,检索所有名字中有zhang的联系人

NSPredicate * predicate = [CNContact predicateForContactsMatchingName:@"张"];

//提取数据

NSArray * contacts =[store unifiedContactsMatchingPredicate:predicate keysToFetch:@[CNContactGivenNameKey] error:nil];

CNMutableContact *contact1 = [contacts objectAtIndex:0];

//修改联系人的属性

contact1.givenName =@"heh";

//实例化一个CNSaveRequest

CNSaveRequest * saveRequest =[[CNSaveRequest alloc]init];

[saveRequest updateContact:contact1];

相关文章

  • iOS Contact框架功能研究

    兄弟们,直接复制,感谢度娘,感谢谷哥!!! 1.读取联系人通讯录 /** * 读取联系人通讯录 */ -(NSMu...

  • iOS换肤功能的简单处理框架

    iOS换肤功能的简单处理框架 iOS换肤功能的简单处理框架

  • 我的 iOS 框架简介

    我的 iOS 框架简介 在平时 iOS 开发中,自己积累了一些功能框架,现在年前,正好有时间,把各个框架的功能和使...

  • iOS框架研究

    面向协议的编程: https://realm.io/cn/news/appbuilders-natasha-mur...

  • Technical Support

    IOS technical support please contact us: QQ:350744346 Ema...

  • JS:先给自己定一个小目标,例如先new一个对象出来

    最近在研究iOS第三方框架JSPath的时候,原本以为该热修复功能的实现是基于react-native的方式,但是...

  • macOS开发之画板

    最近在研究mac客户端上做一个画板功能,首先还是按照iOS开发的经验开始在cocoa框架中需要相关的或者类似的类,...

  • iOS 蓝牙交互基础知识

    要在iOS中集成蓝牙功能,需要使用的是CoreBluetooth框架,通过CoreBluetooth框架提供的AP...

  • 常用控件搜集

    ** 1.ios-charts:一个强大的iOS图表框架** ** 2.LMReport:多功能报表控件,支持...

  • iOS-推送(基础)

    一、iOS推送原理 IOS推送消息是许多IOS应用都具备的功能,最近也在研究这个功能,参考了很多资料终于搞定了,下...

网友评论

      本文标题:iOS Contact框架功能研究

      本文链接:https://www.haomeiwen.com/subject/hvqgpxtx.html