ABPersonView を使用して ABPerson を表示および編集しています。私はこれを次のようにします:
ABPerson *person = (ABPerson *)[_addressBook recordForUniqueId:[curDict valueForKey:@"id"]];
[_personView setPerson:person];
[_personView setEditing:YES];
_personView は私の ABPersonView です。ABPersonView を使用して ABPerson を編集し、AddressBook を保存すると、次のようになります。
[ABAddressBook addressBook] save];
保存され、AddressBook アプリケーションで値が変更されていることがわかりますが、Xcode とコンソールで次のエラー メッセージが表示されます。
私は最初にこれを取得します:
sandboxd: ([3082]) AddressBookSync(3082) deny file-read-data /Users/xcodeuser/Library/Developer/Xcode/DerivedData/CompanyName-asdxadsafadfqmwqxaagdsfgafguge/Build/Products/Debug
これに多くのことが続きます:
sandboxd: ([3035]) AddressBookSync(3035) deny mach-lookup com.apple.syncservices.SyncServer
そして、これで終わります:
AddressBookSync[3035:707] [0x10011ba50] |ISyncManager|Warning| SyncServer is unavailable: timed out trying to connect
AddressBookSync[3035:707] AddressBookSync (client id: com.apple.AddressBook) error: Exception running AddressBookSync: Timed out waiting for the sync server
AddressBookSync exited with 2
私のアプリケーションはサンドボックス化されており、iCloud を統合しました。
私は検索しましたが、同じ種類の問題を抱えている人を見つけることができませんでした。私はこれを試しました:
[[ABAddressBook] sharedAddressBook]
の代わりに使用[[ABAddressBook] addressBook]
すると、ABPersonView で sharedAddressBook の使用が推奨されないというエラーが ABPersonView から表示されます。SyncServices フレームワークを追加しましたが、役に立ちませんでした
ただし、少なくとも私の iCloud アカウントでは、コードは機能します。なぜこれらのエラーが発生するのか、誰にも手がかりがありましたか? Xcode 4.3 と 10.8 で試してみる価値はありますか? 現在、Lion で 4.2.1 を実行しています。
ありがとう!