ABAddressBook - 多个地址簿?

时间:2010-11-08 15:52:34

标签: iphone contacts abaddressbook

我正在构建一个同步来自在线来源的联系人的应用。到目前为止一切正常......当手机有一本地址簿时:

ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef group1 = ABGroupCreate();
ABRecordSetValue(group1,kABGroupNameProperty,@"Group1",nil);
ABAddressBookAddRecord(addressBook,group1,nil);
ABAddressBookSave(addressBook,nil);

ABRecordRef person = ABPersonCreate();
// Edit person values...

ABGroupAddMember(group1,person,nil);
ABAddressBookAddRecord(addressBook,person,nil);
ABAddressBookSave(addressBook,nil);
CFRelease(person);
CFRelease(addressBook);

问题出现了,但是当手机已经有多个地址簿时。我正在测试一部手机,其中包含一个适用于所有联系人的地址簿,一个适用于Gmail等。当我以上述方式添加联系人时,它会将其添加到Gmail地址簿中,并在此过程中删除“Group1”标识符来自联系。有没有办法可以将ABAddressBookRef更改为指向手机中的特定地址簿?

2 个答案:

答案 0 :(得分:0)

根据referenceABAddressBookCreate始终返回从系统的地址簿数据库填充的地址簿对象。这意味着只有一个地址簿,即使您有多个ABAddressBook实例用于与之交互。

答案 1 :(得分:0)

迈克,你可能想看一下这篇文章: Obtaining Specific ABSource from ABAddressBook in iOS 4+

虽然我相信Alex是正确的,只有一本地址簿,但该地址簿可能包含多个来源(ABSource)。而且,在iOS 4+中,可以专门识别和操纵特定来源。