AddressBook 地址簿 (电话簿) 访问与修改

AddressBook:通讯录(Address-Book) Cloud code project for 人物志. 立即下载

访问地址簿和单个联系人数据的接口是基于C语言的函数,接口传递对地址簿各种对象的引用作为参数。管理地址簿中条目的基类对象是 ABRecord。一个 ABRecord 可以表示一个人 或者一个群体 ABGroup 。无论何时,在界面上选中一条记录,或者使用框架进行查询返回一条结果,系统都会返回一个指向 ABRecord 的指针,标示为 ABRecordRef。与地址簿 API 的大部分交互都涉及使用 ABRecordRef 这个引用类型。

常用访问记录的函数如下:

ABRecordID ABRecordGetRecord(ABRecordRef record);

返回 ABRecordID ,代表了 记录在底层数据库中的ID号。具有唯一性。

ABRecordType ABRecordGetRecordType(ABRecordRef record);

返回记录类型。可以是 kABPersonType 和 kABGroupType

CFStringRef ABRecordCopyCompositeName(ABRecordRef record);

返回个人或群体完整名称。例:NSString* name = (NSString*)ABRecordCopyCompositeName(record);

一、高层地址簿函数

1.获得地址簿句柄

你必须先初始化地址簿,然后才能对其进读写操作。要获得一个地址簿句柄,可以使用 ABAddressBookCreate函数:

  1. #import <AddressBook/AddressBook.h>  
  2. AddressBookRef ab = AddressBookCreate();  

2. 保存地址簿

获得了地址簿的引用就可以对其进行操作了,操作完毕要记得保存:
  1. CFErrorRef err;  
  2. BOOL success =  ABAddressBookSave(ab, &err);  
如果不确定是否需要保存,则可以用:
  1. BOOL hasUnsavedChanges = ABAddressBookHasUnsavedChanges(ab);  
3.添加/删除 记录
  1. CFErrorRef err;  
  2. BOOL success =ABAddressBookAddRecord(ab, record, &err);//添加  
  1. CFErrorRef err;  
  2. BOOL success =ABAddressBookRemoveRecord(ab, record, &err);//删除  

二、查询地址簿

 地址簿框架仅仅提供了基本的查询功能。可以用函数根据名字来查询多个记录,或者是根据特定记录 ID 查询单个记录。

1.获取地址簿中记录总个数:

  1. CFIndex count = ABAddressBookGetPersonCount(ab);  
  2.     printf("%ld total entries in the address book\n",count);  
2. 获取所有联系人:
  1. NSArray* array = (NSArray*)ABAddressBookCopyArrayOfAllPeople(ab);  
  2.    printf("Retrieved %d contacts\n",[array count]);  
3. 在联系人列表中查询一个特定的名字:
  1. NSArray* arrayByName = (NSArray*)ABAddressBookCopyPeopleWithName(ab, CFSTR("Liu Wei"));  
函数如其名,这个函数返回的并不是地址簿中实际的对象,而是拷贝。要访问这个数组的单个记录,就用NSArray的方法啦:
  1. ABRecordRef myRecord = [arrayByName objectAtIndex:0];  
除了通过名字查询,你也可以直接通过ID查询(假如你知道ID的话):
  1. ABRecordRef myRecord = ABAddressBookGetPersonWithRecordID(ab, recordID);  

三、创建记录

创建新的联系人可以使用 ABPersonCreate 函数。这样可以得到一个空记录,然后就可以向其中填充信息:

  1. ABRecordRef record = ABPersonCreate();  
四、操纵记录

  一旦获得了 ABRecordRef,就可以确定是属于个人还是群体,也就可以访问更进一步的信息了。姓名以及其他各项信息都可以通过相应属性来操纵。只有ABPerson 类型实体记录才会有属性,而每个记录都具有各种各样的信息。

查询给定记录的信息,可以使用 ABRecordCopyValue 函数。这个函数原型如下:

  1. CFTypeRef ABRecordCopyValue(ABRecordRef record,kABPersonFirstNameProperty);  
调用这个函数时,会将你指定 的属性拷贝一份,并返回引用:
  1. CFStringRef firstName = ABRecordCopyValue(record, kABPersonFirstNameProperty);  
由于kABPersonFirstNameProperty 属性是一个 CFString,你可以将其转换为 NSString* :
  1. NSString* firstName =NSString* ABRecordCopyValue(record, kABPersonFirstNameProperty);  
就像CFStringRef 可以转换为 NSString* 一样,如果有属性返回类型是CFDateRef,你也可以转换为 NSDate* :
  1. NSDate* birthday =  (NSDate*) ABRecordCopyValue(record, kABPersonBirthdayProperty);  
上面所指定的 ABPropertyID, 是一个与在记录中查找信息相对应的值。根据这个值返回ABPerson 对象属性。由于 ABRecordCopyValue 函数返回的数据类型是通用的 CFTypeRef ,所以结果可疑被转换为一个与属性相对应的更细化的数据类型,如下表:
  1. // Property keys  
  2. extern const ABPropertyID kABPersonFirstNameProperty;          // First name - kABStringPropertyType  
  3. extern const ABPropertyID kABPersonLastNameProperty;           // Last name - kABStringPropertyType  
  4. extern const ABPropertyID kABPersonMiddleNameProperty;         // Middle name - kABStringPropertyType  
  5. extern const ABPropertyID kABPersonPrefixProperty;             // Prefix ("Sir" "Duke" "General") - kABStringPropertyType  
  6. extern const ABPropertyID kABPersonSuffixProperty;             // Suffix ("Jr." "Sr." "III") - kABStringPropertyType  
  7. extern const ABPropertyID kABPersonNicknameProperty;           // Nickname - kABStringPropertyType  
  8. extern const ABPropertyID kABPersonFirstNamePhoneticProperty;  // First name Phonetic - kABStringPropertyType  
  9. extern const ABPropertyID kABPersonLastNamePhoneticProperty;   // Last name Phonetic - kABStringPropertyType  
  10. extern const ABPropertyID kABPersonMiddleNamePhoneticProperty; // Middle name Phonetic - kABStringPropertyType  
  11. extern const ABPropertyID kABPersonOrganizationProperty;       // Company name - kABStringPropertyType  
  12. extern const ABPropertyID kABPersonJobTitleProperty;           // Job Title - kABStringPropertyType  
  13. extern const ABPropertyID kABPersonDepartmentProperty;         // Department name - kABStringPropertyType  
  14. extern const ABPropertyID kABPersonEmailProperty;              // Email(s) - kABMultiStringPropertyType  
  15. extern const ABPropertyID kABPersonBirthdayProperty;           // Birthday associated with this person - kABDateTimePropertyType  
  16. extern const ABPropertyID kABPersonNoteProperty;               // Note - kABStringPropertyType  
  17. extern const ABPropertyID kABPersonCreationDateProperty;       // Creation Date (when first saved)  
  18. extern const ABPropertyID kABPersonModificationDateProperty;   // Last saved date  

五、写入属性

向记录写入属性,使用ABRecordSetValue 函数:

  1. CFStringRef name = CFSTR("IUKEY");  
  2.     BOOL suc = ABRecordSetValue(record, kABPersonNicknameProperty, name, &err);  
  3.     if (suc) {  
  4.         NSLog(@"setValue succeed");  
  5.     }  
删除属性:
  1. BOOL succeed = ABRecordRemoveValue(record, kABPersonFirstNameProperty, &err);  
当修改完以后不要忘记保存地址簿。

六、多值属性

除了前面列出的属性之外,一个记录还可能会有一些属性,其中包含多个值。多只属性可以用一种索引机制来处理,使用时首先查询值的总数,然后通过特定的索引得到一个条目。指向多值数据的指针,可以首先通过前面提到的 ABRecordCopyValue 方法得到,然后转换成 MultiValueRef :

  1. ABMultiValueRef phoneNumbers = ABRecordCopyValue(record, kABPersonPhoneProperty);  
然后你可以通过这个引用来确定值的个数,并按照索引获取其中的单个值。函数ABMultiGetCount 可以返回条目个数,按照索引拷贝指定条目,可以用ABMultiValueCopyValueAtIndex 函数。

下面列出了多值属性中的条目:

  1. extern const ABPropertyID kABPersonEmailProperty;  
  2. extern const ABPropertyID kABPersonAddressProperty;  
  3. extern const ABPropertyID kABPersonDateProperty;   
  4. extern const ABPropertyID kABPersonPhoneProperty;  
  5. extern const ABPropertyID kABPersonInstantMessageProperty;   
  6. extern const ABPropertyID kABPersonURLProperty;   
除了多值属性中真正的值,每个条目还有一个标签。标签描述了返回的条目的类型。例如,一个电话号码标签有可能指明了这个号码是家庭电话还是手机号。地址的标签则可一描述是家庭地址还是工作地址。要查询特定条目标签,可以使用 ABMultValueCopyLabelAtIndex 函数:
  1. CFStringRef label = ABMultiValueCopyLabelAtIndex(phoneNumbers, i);  
默写属性具有一组预定义的标签。下面这些 CFStringRef 类型标签的原型是在 ABPerson.h 中指定的:
  1. extern const ABPropertyID kABPersonDateProperty;               // Dates associated with this person - kABMultiDatePropertyType  
  2. extern const CFStringRef kABPersonAnniversaryLabel;  
  1. // Phone numbers  
  2. extern const ABPropertyID kABPersonPhoneProperty;              // Generic phone number - kABMultiStringPropertyType  
  3. extern const CFStringRef kABPersonPhoneMobileLabel;  
  4. extern const CFStringRef kABPersonPhoneIPhoneLabel __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);  
  5. extern const CFStringRef kABPersonPhoneMainLabel;  
  6. extern const CFStringRef kABPersonPhoneHomeFAXLabel;  
  7. extern const CFStringRef kABPersonPhoneWorkFAXLabel;  
  8. extern const CFStringRef kABPersonPhoneOtherFAXLabel __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);  
  9. extern const CFStringRef kABPersonPhonePagerLabel;  
  1. // IM  
  2. extern const ABPropertyID kABPersonInstantMessageProperty;     // Instant Messaging - kABMultiDictionaryPropertyType  
  3. extern const CFStringRef kABPersonInstantMessageServiceKey;     // Service ("Yahoo", "Jabber", etc.)  
  4. extern const CFStringRef kABPersonInstantMessageServiceYahoo;  
  5. extern const CFStringRef kABPersonInstantMessageServiceJabber;  
  6. extern const CFStringRef kABPersonInstantMessageServiceMSN;  
  7. extern const CFStringRef kABPersonInstantMessageServiceICQ;  
  8. extern const CFStringRef kABPersonInstantMessageServiceAIM;  
  1. // URLs  
  2. extern const ABPropertyID kABPersonURLProperty;                // URL - kABMultiStringPropertyType  
  3. extern const CFStringRef kABPersonHomePageLabel; // Home Page  
  1. // Related names  
  2. extern const ABPropertyID kABPersonRelatedNamesProperty;       // Names - kABMultiStringPropertyType  
  3. extern const CFStringRef kABPersonFatherLabel;    // Father  
  4. extern const CFStringRef kABPersonMotherLabel;    // Mother  
  5. extern const CFStringRef kABPersonParentLabel;    // Parent  
  6. extern const CFStringRef kABPersonBrotherLabel;   // Brother  
  7. extern const CFStringRef kABPersonSisterLabel;    // Sister  
  8. extern const CFStringRef kABPersonChildLabel;      // Child  
  9. extern const CFStringRef kABPersonFriendLabel;    // Friend  
  10. extern const CFStringRef kABPersonSpouseLabel;    // Spouse  
  11. extern const CFStringRef kABPersonPartnerLabel;   // Partner  
  12. extern const CFStringRef kABPersonAssistantLabel; // Assistant  
  13. extern const CFStringRef kABPersonManagerLabel;   // Manager  
许多属性使用一组通用标签,标识工作、家庭以及其它地点。这些通用的标签如下:

kABWorkLabel

kABHomeLabel

kABOtherLabel

写入多只属性条目:

为了在现有的属性中加入一个值,你必须首先从记录中复制出多值字典。然后 ABMultiValueAddValueAndLabel 函数操作拷贝,将新的值-标签加入到字典中。最后用函数 ABRecordSetValue 将字典条目写回到地址簿记录中,完全替换掉整个多值属性。

七、使用字典

地址簿记录用字典来 表示地址和即时通讯账号。这些字典是内嵌在多值属性条目之中的。要访问这些字典,需要将值复制出来,并转换成 NSDictionary* 。然后你就可以用一组预定于的键值来访问字典了。

八、图像数据

某些联系人可能会有与之相关联的图像。可以使用 ABPersonCopyImageData 函数获取这些图像数据,返回将是一个 CFDataRef。可以把它转换成 NSData*,然后用来初始化一个UIImage对象。

  1. if (ABPersonHasImageData(record)) {  
  2.        UIImage *addressVookImage = [UIImage imageWithData:(NSData*)ABPersonCopyImageData(record)];  
  3.    }  

九、地址簿界面

 地址簿界面框架提供了两种关键的用户界面:一个“找人”导航控件,来选择联系人;以及一个视图控件,用于显示单个联系人。

1. 联系人视图

ABPersonViewController 提供了一个简单的界面,可以向用户显示一个联系人。联系人视图需要一个 CFRecordRef 。

  1. ABPersonViewController *viewController = [[ABPersonViewController alloc]init];  
可以将希望显示的记录赋值给 displayedPerson 属性:
  1. viewController.displayedPerson=record;  

然后,你可以创建一个数组,其中包含你想要显示给用户的属性。只有指定的属性才会被显示出来,不过如果联系人被修改了,所有属性都将显示出来。可用的属性值与前面提到的枚举值相同。每个都作为一个 NSNumber 对象加入到数组中。

  1. NSMutableArray* properties = [[NSMutableArray alloc]init];  
  2. [properties addObject:[NSNumber numberWithInt:kABPersonFirstNameProperty ]];  
  3. [properties addObject:[NSNumber numberWithInt:kABPersonLastNameProperty ]];  
  4. [properties addObject:[NSNumber numberWithInt:kABPersonOrganizationProperty ]];  
  5. viewController.allowsEditing =YES;  
十、联系人选取器

如果应用程序要选取一系列联系人,ABPeoplePickerNavigationController 类正好适合你。这个导航控件 可以显示联系人,让用户从中选择其一。选好后,你可以选择向用户显示该联系人,也可以通过一个委托方法实现你自己的行为。

  1. ABPeoplePickerNavigationController* peoplePicker = [[ABPeoplePickerNavigationController alloc]init];  
如果希望允许用户查看单个联系人,你可以赋予其一组希望用户看到的属性。默认情况下会向用户显示所有的项目。 可用的属性值就是本章前面讲授的那些枚举值。每个作为一个NSNumber对象加入到数组中:
  1. NSMutableArray* properties = [[NSMutableArray alloc]init];  
  2.    [properties addObject:[NSNumber numberWithInt:kABPersonFirstNameProperty ]];  
  3.    [properties addObject:[NSNumber numberWithInt:kABPersonLastNameProperty ]];  
  4.    [properties addObject:[NSNumber numberWithInt:kABPersonOrganizationProperty ]];  
  5.    peoplePicker.displayedProperties = properties;  
可以指定一个委托,在用户选定联系人时接收通知:
  1. peoplePicker.peoplePickerDelegate =self;  
  1. [self.view addSubview:peoplePicker.view];  

委托方发:
  1. -(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker{  
  2.     //取消选择  
  3. }  
  4.   
  5. -(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person{  
  6.     //选中联系人  
  7.       
  8. }  
  9. -(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{  
  10.       
  11.     //选中属性  
  12. }  













顶
105
踩
0
查看评论

addressBook addressBook用于获取iOS 通讯录,可以修改 增加 删除查询通讯录 立即下载

相关推荐

地址簿信息管理系统_地址簿信息管理系统_

一个简单的地址簿信息管理系统,适合新手进行学习

近几年软考真题

【问题3】(3分)考虑实例n=4,各个矩阵的维数为A1为15*5,A2为5*10,A3为10*20,A4为20*25,即维度序列为15,5,10,20和25。cos[i][j]:二维数组,长度为n*n,其中元素cost[i][j]表示Ai+1*Ai+2**Aj+1的最优的计算代价trace[][]:二维数组,长度为n*n,其中元素trace[i][j]表示Ai+1*Ai+2**Aj+1的最算对应的划分位置,即k(2)函数cmmine N100 cost[N[N]、n个矩阵相乘的最小计算量及最优计算顺序。

weixin_53666393的博客 1125

iPhone用户必看:TrollStore巨魔商店在线安装保姆级教程(iOS 14-16.6.1适用)

本文为iOS 14至16.6.1系统的iPhone用户提供了一份详细的TrollStore(巨魔商店)在线安装教程。文章从核心原理、安装前准备讲起,逐步详解了通过Safari浏览器获取安装器、信任企业证书、部署TrollStore及关键后置配置的全过程,并附带了常见问题排错指南,帮助用户安全、高效地实现无需越狱安装第三方应用。

h0i1j2k3l的博客 1972

2022年上半年软件设计师下午试题

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某公司欲开发一款外卖订餐系统,集多家外卖平台和商户为一体,为用户提供在线浏览餐品、订餐和配送等服务。该系统的主要功能是:1.入驻管理。用户注册:商户申请入驻,设置按时间段接单数量阅值等。系统存储商户/用户信息。2.餐品管理。商户对餐品的基本信息和优惠信息进行发布、修改、删除。系统存储相关信息。3.订餐。用户浏览商户餐单,选择餐品及数量后提交订餐请求。系统存储订餐订单。4.订单处理。收到订餐请求。

Catherinemin的博客 1243

第七天 Labview进阶(7.2 与汇川PLC通信)

运行环境: Labview 2020 Autoshop v4.10.1.1 该文档中包括Labview程序和汇川PLC程序,可以完美实现Labview与汇川PLC的通信。具体的使用教程可以参考本人的相关文章,讲解详尽,请尽情享用!

weixin_38637405的博客 3524

【Power Compiler手册】13.UPF多电压设计实现(2)

在这个场景中,在约束传播期间,工具会比较BLOCK中的原子电源域与TOP设计中的原子电源域,并且确认所有属性都匹配。因此,域合并成功,工具会丢弃来自BLOCK的域。在这个场景中,在约束传播期间,工具会比较BLOCK中的原子电源域与TOP设计中的非原子电源域,发现电源域不匹配。在这个场景中,在约束传播期间,工具会比较BLOCK中的非原子电源域与TOP设计中的原子电源域,发现电源域不匹配。在这个场景中,在约束传播期间,工具会比较BLOCK中的原子电源域与TOP设计中的原子电源域,发现它们的一些属性不匹配。

QRBQ 750

2022年上半年软件设计师下午真题试题(案例分析)及答案

1.外卖订餐系统的数据流图 阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 某公司欲开发一款外卖订餐系统,集多家外卖平台和商户为一体,为用户提供在线浏览餐品、订餐和配送等服务。该系统的主要功能是: 1.入驻管理。用户注册:商户申请入驻,设置按时间段接单数量阅值等。系统存储商户/用户信息。 2.餐品管理。商户对餐品的基本信息和优惠信息进行发布、修改、删除。系统存储相关信息。 3.订餐。用户浏览商户餐单,选择餐品及数量后提交订餐请求。系统存储订餐订单。 4.订单处理。收到订餐请求

WHT869706733的博客 1万+

ArcGIS:景观指数和景观单元关联生成景观指数遥感图像

优快云@_养乐多_本文将记录,使用由 Fragstats V4.2 软件计算的景观指数和瓦片 tif 数据生成景观指数图像的操作步骤。本教程的操作均在ArcGIS上进行,最后生成一个研究区内指定景观单元大小的景观指数图像。结果如下所示,

养乐多的博客 4926

获得通讯录中联系人的所有属性

ABAddressBookRef addressBook = ABAddressBookCreate();     CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook);          for(int i = 0; i &lt; CFArrayGetCount(results); i++)     { ...

fangyp 241

手眼标定----眼在手上(eye-in-hand)

@TOC 标定之前你可以先拿个怡宝盖子进行测试。 第一步:打开halcon,采集,然后生成代码,显示十字架 第二步:把怡宝盖子放在十字架中心位置,在图像处理,找到怡宝盖子 第三步:找到怡宝盖子然后进行九点标定(眼在外帖子有讲),移动机器手然后分别拍9次照片,记录怡宝盖子坐标和当前机器坐标。这里移动到中心位置的时候记录一下单独记录一下坐标,等下要用。 顺序 第四步:拍完后利用vector_to_hom_mat2d算子求出矩阵,然后在利用write_tuple (HomMat2D, ‘路径’)进行保存。这里

苏州程序大白的博客 4280

动手在 SAP BTP Cloud Foundry 开发和部署 SAP UI5 应用的前置条件 - 订阅 SAP Build Work Zone Standard Version

摘要:本文介绍了SAP BTP Cloud Foundry环境中HTML5应用的概念,区分了web应用、HTML5应用和SAP UI5应用的关系。重点说明了在Cloud Foundry环境部署HTML5应用的方法是通过订阅SAP Build Work Zone standard edition服务,并详细描述了订阅过程中可能遇到的"OIDC trust missing"错误。该错误是由于业务用户认证需要配置SAP Cloud Identity Services的OpenID Connec

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 310

AddressBook 地址簿  (电话簿) 访问与修改-IOS开发

访问地址簿和单个联系人数据的接口是基于C语言的函数,接口传递对地址簿各种对象的引用作为参数。管理地址簿中条目的基类对象是 ABRecord。一个 ABRecord 可以表示一个人 或者一个群体 ABGroup 。无论何时,在界面上选中一条记录,或者使用框架进行查询返回一条结果,系统都会返回一个指向 ABRecord 的指针,标示为 ABRecordRef。与地址簿 API 的大部分交互都涉及使用

潇洒的程序员 1万+

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

AddressBook 地址簿 (电话簿) 访问与修改-IOS开发

原文http://blog.youkuaiyun.com/iukey/article/details/7343650 访问地址簿和单个联系人数据的接口是基于C语言的函数,接口传递对地址簿各种对象的引用作为参数。管理地址簿中条目的基类对象是 ABRecord。一个 ABRecord 可以表示一个人 或者一个群体 ABGroup 。无论何时,在界面上选中一条记录,或者使用框架进行查询返回一条结果,系统都会返

840

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

AddressBook 地址簿 (电话簿) 访问与修改-IOS开发

访问地址簿和单个联系人数据的接口是基于C语言的函数,接口传递对地址簿各种对象的引用作为参数。管理地址簿中条目的基类对象是 ABRecord。一个 ABRecord 可以表示一个人 或者一个群体 ABGroup 。无论何时,在界面上选中一条记录,或者使用框架进行查询返回一条结果,系统都会返回一个指向 ABRecord 的指针,标示为 ABRecordRef。与地址簿 API 的大部分交互都涉及使用 

geeklyc 549

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

AddressBook 电话簿访问与修改

访问地址簿和单个联系人数据的接口是基于C语言的函数,接口传递对地址簿各种对象的引用作为参数。管理地址簿中条目的基类对象是 ABRecord。一个 ABRecord 可以表示一个人 或者一个群体 ABGroup 。无论何时,在界面上选中一条记录,或者使用框架进行查询返回一条结果,系统都会返回一个指向 ABRecord 的指针,标示为 ABRecordRef。与地址簿 API 的大部分交互都涉及使用

LIN1986LIN的专栏 1342

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python编程:电话簿TeleAddressBook和邮箱地址簿EmailAddressBook两个文件,合并为一个完整的AddressBook文件

有电话簿TeleAddressBook和邮箱地址簿EmailAddressBook两个文件,使用字典结构将其合并为一个完整的AddressBook文件 。 变为: 代码如下: # -*- coding:UTF-8 -*- file1_read = open("file1", 'r') file1_read.readline().decode("utf-8") lines

果冻先生的专栏 7742
上一篇: UIKeyboard键盘
下一篇: UIPageControl
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值