我遇到了 AddressBook 框架的问题。这一切似乎都源于 ABCopyRecordForUniqueId 返回带有旧数据的记录。
例子:
我在一个终端窗口中运行下面的程序 - 它显示当前数据。
我通过地址簿 UI 进行了更改 - 我的程序继续显示旧数据。
我在一个新的终端窗口中运行了同一程序的另一个实例——它显示了更新的数据。
我试过在omnigroup网站上发帖但没有运气:(所以任何指导都非常感谢
PS:如果您想尝试代码,要获取地址簿 ID,您可以将联系人导出为 vCard 并使用文本编辑器打开它
int main (int argc, const char * argv[])
{
ABAddressBookRef addressBook = ABGetSharedAddressBook();
while(1)
{
ABRecordRef addressBookRecord = NULL;
addressBookRecord = ABCopyRecordForUniqueId(addressBook, CFSTR("4064D587-0378-4DCF-A6B9-D3702F01C94C:ABPerson"));
CFShow(addressBookRecord);
CFRelease(addressBookRecord);
sleep(1);
}
return 0;
}