ABAddressBookRef
アドレス帳データの生成、保存、削除などを行う複数の連絡先を格納している手帳みたいなもの
ABRecordRef
アドレス帳の中にレコード(ABRecord)がある
1件毎の各個人の電話帳みたいなもの
レコードには2種類
- Person Records
- 氏名、電話番号、Email、住所など
- Group Records
- 名前、IDぐらいしかない
- Groupには複数のPersonRecordをひも付ける事ができる
※ただiPhone単体ではグループの作成はできないらしい
グループ関連の操作
アドレス帳のグループ取得
ABAddressBookRef book = ABAddressBookCreate();
CFArrayRef recodes = ABAddressBookCopyArrayOfAllGroups(book);
for (int i = 0; i < CFArrayGetCount(recodes); i++) {
ABRecordRef group = CFArrayGetValueAtIndex(recodes, i);
ABRecordID recodeId = ABRecordGetRecordID(group);
NSString* str = (NSString*) ABRecordCopyValue(group, kABGroupNameProperty);
NSLog(@"recodeId:%d group name:%@", (int)recodeId, str);
CFRelease(str);
}
CFRelease(recodes);
CFRelease(book);
グループの作成
NSString* groupName = @"会社";
ABAddressBookRef book = ABAddressBookCreate();
ABRecordRef group = ABGroupCreate();
ABRecordSetValue(group, kABGroupNameProperty,groupName, nil);
ABAddressBookAddRecord(book, group, nil);
ABAddressBookSave(book, nil);
NSInteger groupId = ABRecordGetRecordID(group);
NSLog(@"groupId:%d", groupId);
CFRelease(book);
CFRelease(group);
グループの削除
NSInteger groupId = 1;
ABAddressBookRef book = ABAddressBookCreate();
// 削除
ABRecordRef recode = ABAddressBookGetGroupWithRecordID(book, groupId);
ABAddressBookRemoveRecord(book, recode, nil);
ABAddressBookSave(book, nil);
CFRelease(book);
余談ですが、Personの最終更新日は下記で取得可能です
最終更新日の取得
CFDateRef cfCreateDate = ABRecordCopyValue(person, kABPersonCreationDateProperty);
0 件のコメント:
コメントを投稿