ABAddressBookRegisterExternalChangeCallback を使用して、AddressBook データベースに変更が加えられた場合に登録します。私は問題なく動作しており、通知を受け取ることができますが、アプリが実行されている場合にのみ機能します。
アプリが強制終了 (終了) されてから再起動されると、強制終了と再起動の間の変更は認識されません。
これらの変更を検出する方法はありますか、それともこのように動作するように設計されていますか?
私が使用しているサンプルコード -
ビューでDidLoad -
CFErrorRef error = NULL;
addressBook = ABAddressBookCreateWithOptions(NULL, &error);
ABAddressBookRegisterExternalChangeCallback(addressBook,addressBookChanged,(__bridge void *)(self));
そしてコールバック
void addressBookChanged(ABAddressBookRef reference, CFDictionaryRef dictionary, void *context) {
NSLog(@"There was a change in the addressbook");