アドレス帳と についていくつか質問がありABAddressBookRegisterExternalChangeCallback
ます。
addressBook = ABAddressBookCreateWithOptions(NULL, &error);
allowsEditing = YES
に追加して新しい連絡先レコードを開いています
ABAddressBookAddRecord(addressBook, aContact,&anError)
ABAddressBookRegisterExternalChangeCallback(addressBook, changed, (__bridge void *)(self));
これはすべてアプリデリゲートでは行われません(これがコールバックが呼び出されない理由である可能性があるという投稿の1つを読みました)
アプリデリゲートで行う必要がありますか? この連絡先が作成されたばかりであることが問題ですか? ただし、アプリの委任を次のように呼び出しようとすると、次のようになります。
ab = ABAddressBookCreateWithOptions(NULL, &error);
ABAddressBookRegisterExternalChangeCallback(appABChanged, ab, (__bridge void *)(self));
アプリがクラッシュします。
コントローラーで DONE ボタンがクリックされたときに通知を受け取る他の方法はありますか? AB の変更は気にしません。組み込みの連絡先編集機能を使用したいだけです。本当に気になるのは ABRecordRef だけです。
私が言おうとしているのは、実際に必要なのは、DONEクリックボタンのABPersonViewController通知と、実際に変更された場合はフラグ付きで変更されたABrecordRefを受け取ることだと思います。