У меня проблема с платформой AddressBook.
Кажется, все это происходит из-за того, что ABCopyRecordForUniqueId возвращает запись со старыми данными.
Пример:
Я запускаю программу ниже в одном окне терминала - она показывает данные .
Я изменяю пользовательский интерфейс адресной книги - моя программа продолжает показывать старые данные.
Я запускаю другой экземпляр той же программы в новом окне терминала - в нем отображаются обновленные данные .
Я попытался опубликовать на сайте omnigroup безуспешно :( Так что любые рекомендации действительно приветствуются
PS: Если вы хотите попробовать код, чтобы получить идентификатор адресной книги, вы можете экспортировать контакт в виде 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;
}