/ / Не се обаждате на обратно повикване в адресната книга - iphone, цел-c, адресен указател

Не се извиква обратно повикване в адресната книга - iphone, цел-c, адресен указател

Имам приложение за iPhone, което използваAddressBook.framework и използва Core Data за съхранение на тези контакти. За да се уверя, че актуализирам собствената си база данни, когато Адресната книга е актуализирана (чрез MobileMe или редактиране в собственото ми приложение), аз се абонирам за известието за това кога Адресната книга се актуализира. Нареждам това при стартиране:

ABAddressBookRef book = ABAddressBookCreate();
ABAddressBookRegisterExternalChangeCallback(book, addressBookChanged, self);

Което (предполагаемо) го призовава за всяка редакция. Имам ABPersonViewController, който позволява редактиране, а addressBookChanged никога не изглежда да се обадя.

void addressBookChanged(ABAddressBookRef reference, CFDictionaryRef dictionary, void *context) {
// The contacts controller we need to call
ContactsController *contacts = (ContactsController *)context;

// Sync with the Address Book
[contacts synchronizeWithAddressBook:reference];
}

Има ли причина да не се нарича това?

Отговори:

8 за отговор № 1

Оказва се, че причината, поради която не е била наречена, е просто грешка.

CFRelease(book);

След задаване на известието. Премахнах това и сега го наричат.