2009-11-12 3 views
0

У меня возникла проблема с каркасом AddressBook. Все это, похоже, связано с ABCopyRecordForUniqueId, возвращающим запись со старыми данными.Адресная книга возвращает старые значения

Пример:

Я бегу вверх ниже в одном окне терминала программы - это показывает текущие данные о.

Я вношу изменения через адресную книгу UI - моя программа продолжает показывать старые данные.

Я запускаю еще один экземпляр той же программы в новом окне терминала - он показывает обновленные данные.

Я попытался размещения на сайте OmniGroup не повезло :(так что любое руководство действительно ценится

PS: Если вы хотели бы попробовать код, чтобы получить адресную книгу ID вы можете экспортировать контакт как визитная карточка и открыть его с помощью текстового редактора

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; 
} 

ответ

0

я попробовал ваш пример себя и видит ту же самую проблему. из любопытства, я пытался просить общую адресную книгу внутри цикла (в случае, если есть некоторая странность работа с адресной книгой singleton), но это не имело значения. Я также проверил документацию (ABAddressBook C Reference) как справочник и руководство по адресным книгам более высокого уровня. Насколько я могу судить, вы поступаете правильно.

Я бы file this as a bug против рамки.

0

спасибо за предложение. Я сделал файл отчета, но оказывается, что это, как ожидается,

Досадно, что он не был в документации ..

«Engineering определил, что этот вопрос ведет себя, как предполагалось на основе следующей информации:

Адресная книга требует запуска цикла запуска для получения обновлений от других приложений. Вместо сна (1) используйте CFRunLoopRunInMode (kCFRunLoopDefaultMode, 1.0, false). "

Thanks, M

Смежные вопросы