AddressBook.Framework应用之ABAddressBookRef,ABRecordRef,AB

来源:未知 责任编辑:责任编辑 发表时间:2013-12-06 08:43 点击:

AddressBook.framework是c  api直接访问操作 通讯录数据库框架,AddressBookUI.framework是oc 界面交互框架;

以下代码是操作通讯录,纯c框架没有*指针定义,没有界面交互,只需导入AddressBook.framework框架。

 ABAddressBookRef adbk=ABAddressBookCreate();//获取本地通讯录数据库
    ABRecordRef moi=NULL;//联系人
   ABRecordRef annkey=ABPersonCreate();//创建联系人
    //设置联系人的值
    ABRecordSetValue(annkey,kABPersonFirstNameProperty,@"annkey",NULL);
    ABRecordSetValue(annkey,kABPersonLastNameProperty,@"hu",NULL);
     //创建多值属性
    ABMutableMultiValueRef addr=ABMultiValueCreateMutable(kABStringPropertyType);
     //增加属性名和属性值,属性名为kABHomeLabel
    ABMultiValueAddValueAndLabel(addr,@"annkey@qq.con",kABHomeLabel,NULL);
     //设置联系人的多值邮箱属性
   ABRecordSetValue(annkey,kABPersonEmailProperty, addr,NULL);
   
   ABAddressBookAddRecord(adbk, annkey,NULL);//增加联系人
    ABAddressBookSave(adbk,NULL);//保存联系人
   
   CFRelease(addr);
    CFRelease(annkey);//,即使是在arc机制里,c对象仍需手动释放
   
    CFArrayRef sams=ABAddressBookCopyPeopleWithName(adbk, (CFStringRef)@"hu");//联系人数组,可能存在多个同名的联系人,需要通过其他属性来判断具体是哪个
   for (CFIndex ix=0; ix<CFArrayGetCount(sams); ix++) {
       
             // 从联系人数组多个sam中读取
       ABRecordRef sam=CFArrayGetValueAtIndex(sams, ix);
            //  获取联系人的名属性
        CFStringRef last=ABRecordCopyValue(sam,kABPersonLastNameProperty);
       NSLog(@" is find %@",last);
        //找到符合条件的联系人
       if (last&&CFStringCompare(last, (CFStringRef)@"annkey",0)==0) {
            moi=sam;
                   }
       if (last) {
           //必须要判断cf对象是否为空,只有不是null才可被释放,如果不判断会报错。
           CFRelease(last); //c对象需手动释放
        }
       
    }

相关新闻>>

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Lexical or Preprocessor Issue 'xxx.h
    • ios学习笔记(二)xcode 4.3.2下实现基本交互
    • ios版本的helloworld
    • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
    • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
    • IOS类似iphone通讯录TableView的完整demo【附源码】
    • UITableView一些方法
    • [iPhone中级]iPhone团购信息客户端的开发 (二)
    • 如何为Iphone应用创建启动界面
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1