如果对 AddressBook 数据库进行了任何更改,我正在使用 ABAddressBookRegisterExternalChangeCallback 进行注册。我让它工作正常并且能够接收通知,但它们仅在应用程序运行时工作。
一旦应用程序被终止(终止),然后重新启动,它就不会识别在终止和重新启动之间的这段时间内所做的更改。
有没有办法检测这些变化,或者这是否旨在以这种方式工作?
我正在使用的示例代码 -
在 viewDidLoad -
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");