私はiOS-appを登録して電話アドレス帳の変更を聞くのに奇妙な問題があります。正しいメソッドは、何かがアドレス帳で変わったときに呼び出されますが、2〜6回呼び出されます。ABAddressBookRegisterExternalChangeCallbackが複数回呼び出されました
オブジェクトは(シングルトンなので、1つのオブジェクトのみ)、私はこのコードの通知を登録するに作成される:次のようになりますと呼ばれる
ABAddressBookRegisterExternalChangeCallback(notificationAddressBook, addressBookChanged, (__bridge_retained void *)self);
方法:
void addressBookChanged(ABAddressBookRef ab, CFDictionaryRef info, void *context){
ABAddressBookRevert(ab);
NSLog(@"ADDRESSBOOK CHANGED");
[phoneBookCopy updateCopy];
}
どれをどのようにこれを解決するアイデア?
この問題もあります。連絡先の名前を変更して自分のアプリに戻すためにiOSのアドレス帳に切り替えるたびに、コールバックは常に4回呼び出されます。登録したときにコンテキストを追加しようとしましたが、4つの呼び出しのすべてでコンテキストが送信されることがわかりました。 私はここでこれを読んでいます:http://stackoverflow.com/questions/7116956/gcd-and-callbacks-concurrency-issue誰かがこれが既知のバグだと主張していますが、私はそれを見つけませんでした。誰かがこの刺激的な行動に関する情報を持っていますか? –