4

ABRecordRefをコアデータの「クライアント」エンティティに保存したいと思います。

ABRecordRefがプリミティブCデータ型であることをリンゴのドキュメントで読みました。私の知る限り、オブジェクトを挿入できるのはコアデータのみです。これを念頭に置いて、コアデータに保存するための最良の方法は何ですか?

ストレージ用にNSNumberに変換することを考えましたが、使用するためにABRecordRefに変換し直す方法がわかりません。

また、ラッパーとして機能するだけでNSArray / NSSet / NSDictionaryに入れることができると思いましたが、これがばかげている/非効率的である/機能するかどうかさえわかりませんでした。

感謝します。

どうもありがとう

4

1 に答える 1

12

私のアプリの 1 つで、ABRecordGetRecordID() を INT32 として CoreData ストアに保存し (ABRecordID は int32_t であるため)、連絡先の名前を CoreData ストアに保存して、すばやく表示できるようにしました。このようにして、Record 情報はそれが属する AddressBook に格納され、レコードへの「ポインタ」を CoreData ストアに格納しました。

その後、必要に応じて AB フレームワークへの C 呼び出しをラップするカスタム クライアント NSManagedObject で便利なラッパー アクセサーを作成できます。

于 2012-02-21T06:18:43.517 に答える