獲取通訊錄

ABAddressBookRef addressBook=ABAddressBookCreate();
創建一個通訊錄副本,類似alloc,需要release。
類似retain和release的方法,CFRetain和CFRelease

CFArrayRef people=ABAddressBookCopyArrayOfAllPeople(addressBook);
從通訊錄副本addressBook獲取所有聯繫人的ABRecordRef集合所構成的數組

ABRecordRef person=CFArrayGetValueAtIndex(people, i);
從聯繫人數組中獲取單個聯繫人的集合
ABRecordRef集合包含了一個聯繫人的所有信息,如:姓名,email,電話,住址等來自通訊錄的信息

NSString *info=(NSString *)ABRecordCopyValue(person, ABPropertyID);
從ABRecordRef集合中,獲得單個聯繫人的通訊錄的各種信息,至於何種信息由ABPropertyID定
ABPropertyID
firstname kABPersonFirstNameProperty
lastname kABPersonLastNameProperty
middlename kABPersonMiddleNameProperty
prefix kABPersonPrefixProperty
suffix kABPersonSuffixProperty
nickname kABPersonNicknameProperty
email kABPersonEmailProperty
phone kABPersonPhoneProperty
creationDate kABPersonCreationDateProperty
modificationDate kABPersonModificationDateProperty

ABRecordID personRecordID=ABRecordGetRecordID(person);
獲取ABRecordRef集合的ABRecordID,所傳入的對象是ABRecordRef,不是ABAddressBookRef和CFArrayRef
ABRecordID其實是整型,可以用%i輸出

ABRecordRef person = ABAddressBookGetPersonWithRecordID(addressBook, personRecordID);
根據RecordID來獲得ABRecordRef類型的單個聯繫人,ABRecordGetRecordID()的反向方法,addressBook是ABAddressBookRef類型的

ABRecordType personRecordType ABRecordGetRecordType(person);
獲取類型,傳入的參數可以是多種類型
當傳入的參數是ABRecordRef類型的話,值爲0,對應的類型是 kABPersonType

ABRecordRef groupRecord = ABAddressBookGetGroupWithRecordID(addressBook, groupRecordID);
根據RecordID來獲得ABRecordRef類型的羣組,addressBook是ABAddressBookRef類型的

BOOL success = ABGroupAddMember(group, person, (CFErrorRef *) error);
添加聯繫人person到羣組group

BOOL success = ABGroupRemoveMember(group, person, (CFErrorRef *) error);
從羣組group中刪除聯繫人person

ABAddressBookSave(addressBook, (CFErrorRef *) error);
進行任何操作後,都需要用這個函數來保存到通訊錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章