ABAddressBookRegisterExternalChangeCallback работает, но данные устарели

Мое приложение регистрирует обратный вызов один раз:

notificationAddressBook = ABAddressBookCreate();

ABAddressBookRegisterExternalChangeCallback(notificationAddressBook, MyAddressBookExternalChangeCallback, self);

Затем в моем обратном вызове:

void MyAddressBookExternalChangeCallback (ABAddressBookRef notifyAddressBook,CFDictionaryRef info,void *context)
{
     NSLog(@"in MyAddressBook External Change Callback");

     ABAddressBookRevert(notifyAddressBook);         

     CFArrayRef peopleRefs = ABAddressBookCopyArrayOfAllPeopleInSource(notifyAddressBook, kABSourceTypeLocal);

     CFIndex count = CFArrayGetCount(peopleRefs);
     NSMutableArray* people = [NSMutableArray arrayWithCapacity:count];
     for (CFIndex i=0; i < count; i++) {
        ABRecordRef ref = CFArrayGetValueAtIndex(peopleRefs, i);
        ABRecordID id_ = ABRecordGetRecordID(ref);
        TiContactsPerson* person = [[[TiContactsPerson alloc] _initWithPageContext:[context executionContext] recordId:id_ module:context] autorelease];
        NSLog(@"name: %@", [person valueForKey:@"firstName"]);
        NSLog(@"phone: %@", [person valueForKey:@"phone"]);
        NSLog(@"modified: %@", [person valueForKey:@"modified"]);
        [people addObject:person];
     } 

     CFRelease(peopleRefs);
}

При добавлении нового контакта событие запускается нормально, и данные актуальны в первом добавлении и второй и третий. Проблема заключается в редактировании сведений о существующем контакте.

При первом запуске события данные верны до последнего обновления (я изменил номер телефона одного контакта в контактах iPhone), затем я переключаюсь в приложение и получить последнее обновление. Затем переключаюсь обратно в адресную книгу,внести еще одно изменение, переключиться на мое приложение и получить другое событие. На этот раз данные устарели, последние изменения не отражены.

Я попытался освободить экземпляр ABAddressBookRef и снова вызвать ABAddressBookCreate () , но это тоже не помогло.

] Есть идеи?

7
задан Shmidt 12 September 2014 в 08:32
поделиться