写接触知识和查询功能的基础,现在我们就来看看信息写入

  • 变化
  • 删除
#pragma mark  - 系人信息

//创建联系人
- (void) creatNewRecord
{
CFErrorRef error = NULL; //创建一个通讯录操作对象
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error); //创建一条新的联系人纪录
ABRecordRef newRecord = ABPersonCreate(); //为新联系人记录加入属性值
ABRecordSetValue(newRecord, kABPersonFirstNameProperty, (__bridge CFTypeRef)@"雪松", &error); //创建一个多值属性
ABMutableMultiValueRef multi = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multi, (__bridge CFTypeRef)@"12345678990", kABPersonPhoneMobileLabel, NULL);
ABMultiValueAddValueAndLabel(multi, (__bridge CFTypeRef)@"11234567890", kABPersonPhoneIPhoneLabel, NULL); //将多值属性加入到记录
ABRecordSetValue(newRecord, kABPersonPhoneProperty, multi, &error);
CFRelease(multi); //加入记录到通讯录操作对象
ABAddressBookAddRecord(addressBook, newRecord, &error); //保存通讯录操作对象
ABAddressBookSave(addressBook, &error);
CFRelease(newRecord);
CFRelease(addressBook);
} - (void) editRecord
{
CFErrorRef error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
ABRecordID recordID = [personIDASNumber intValue];
ABRecordRef record = ABAddressBookGetPersonWithRecordID(addressBook, recordID); //设置电话号码
ABMutableMultiValueRef multi = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multi, (__bridge CFTypeRef)@"12345678900", kABPersonPhoneMobileLabel, NULL);
ABMultiValueAddValueAndLabel(multi, (__bridge CFTypeRef)@"12345678900", kABPersonPhoneIPhoneLabel, NULL); //加入电话号码到数据库
ABRecordSetValue(record, kABPersonPhoneProperty, multi, &error);
CFRelease(multi); //保存到数据库
ABAddressBookSave(addressBook, &error);
CFRelease(addressBook); } - (void)deleteRecord
{
CFErrorRef error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
ABRecordID recordID = [personIDASNumber intValue];
ABRecordRef record = ABAddressBookGetPersonWithRecordID(addressBook, recordID); //删除记录
ABAddressBookRemoveRecord(addressBook, record, &error); //保存到数据库
ABAddressBookSave(addressBook, &error);
CFRelease(addressBook);
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

最新文章

  1. Java和PHP哪个方向更有前途?
  2. 布局包含Image和Title的UIButton
  3. STL-算法
  4. 解决linux联网问题的方法论
  5. C#- FTP递归下载文件
  6. hdu 1269
  7. Android Studio的一些技巧和使用注意事项(持续更新)
  8. HDU 1069 Monkey and Banana(DP 长方体堆放问题)
  9. 半平面交总结and模板
  10. java学习笔记之String类
  11. 第65章 博客帖子 - Identity Server 4 中文文档(v1.0.0)
  12. 部署kubernetes-dashboard
  13. Python之Unittest和Requests库详解
  14. 拓扑排序基础 hdu1258,hdu2647
  15. MDI容器
  16. android学习中遇到的错误
  17. 【转】 Android定时器
  18. Django入门指南-第6章:第一个视图函数(完结)
  19. 5. support vector machine
  20. 20145234黄斐《Java程序设计》实验三—敏捷开发与xp实践

热门文章

  1. Vue源码--解读vue响应式原理
  2. 最简单的基于FFmpeg的移动端样例:IOS HelloWorld
  3. 修改Linux中的用户名 分类: B3_LINUX 2014-07-24 11:40 440人阅读 评论(0) 收藏
  4. Loader之二:CursorLoader基本实例 分类: H1_ANDROID 2013-11-16 10:50 5447人阅读 评论(0) 收藏
  5. SharedPreferences基础 分类: H1_ANDROID 2013-11-04 22:35 2559人阅读 评论(0) 收藏
  6. spring mvc 解决csrf跨站请求攻击
  7. iOS 直播
  8. 小强的HTML5移动开发之路(28)—— JavaScript回顾3
  9. Database Vault注冊
  10. erlang lists