我有一个奇怪的问题,我注册我的iOS应用程序来监听电话地址簿中的更改。当地址簿中的内容发生变化时调用正确的方法,但它会被调用2-6次。ABAddressBookRegisterExternalChangeCallback多次调用
当对象被创建(单,所以只有一个对象),I注册与此代码通知:
ABAddressBookRegisterExternalChangeCallback(notificationAddressBook, addressBookChanged, (__bridge_retained void *)self);
的方法,被称为如下所示:
void addressBookChanged(ABAddressBookRef ab, CFDictionaryRef info, void *context){
ABAddressBookRevert(ab);
NSLog(@"ADDRESSBOOK CHANGED");
[phoneBookCopy updateCopy];
}
不限想法如何解决这个问题?
我也有这个问题。每当我切换到iOS通讯录以更改联系人的姓名并切换回我的应用程序时,回调都会被调用四次 - 始终如此。我在注册时尝试添加上下文,并且看到我的上下文在四次调用中都发送给我。 我在这里阅读:http://stackoverflow.com/questions/7116956/gcd-and-callbacks-concurrency-issue有人声称这是一个已知的错误,但我还没有找到它。有人有关于这种刺激性行为的更多信息吗? – 2012-05-16 11:45:19