1

私はNSPersistantDocument自分のアプリケーションでCoreDataに裏打ちされたものを使用しています。

各ドキュメントには、そのドキュメントにのみ関連するいくつかの設定があります。たとえば、ドキュメントは、後日更新するために、アドレスブックグループの一意のIDを保持する必要があります。

私がこれに取り組むことを考えている方法は、DocumentSetting2つの属性を持つ別のモデルを持つことです。NSString'sを保持するキーと値。

理想的には、ドキュメントに似ているNSUserDefaultsが保存されているものが欲しいです。

誰かがこれを以前にやったことがありますか?これにアプローチするためのより良い方法はありますか?

4

2 に答える 2

4

NSPersistentStoreのsetMetadata:メソッドを使用して、ドキュメントごとの設定を保存できます。ストアのメタデータの使用方法に関するドキュメントは、ここにあります。ただし、ドキュメントでアドバイスされているように、そこに入れることができるものにはいくつかのサイズ制限があります。いくつかのキーと値のペアよりも実質的なものを格納する必要がある場合は、そのようなデータを格納するためにデータモデルに新しいエンティティを作成することをお勧めします。

于 2009-07-25T00:08:41.527 に答える
2

ブライアンが言うように、永続ストアのメタデータはこの種のものに適した場所です。または、別のエンティティを追加するというアイデアも機能します(過去に両方の方法を使用しました)。このDocumentSettingエンティティがドキュメントモデル内の他のエンティティと関係がない場合は、別のxcdatamodelに配置し、実行時にを使用してモデルをマージできることに注意して-[NSManagedObjectModel mergedModelFromBundles:]ください。少なくともこの方法では、「ソース」モデルファイルを少し分離しておくことができます。

戦略の観点から、これらのドキュメント設定を非常に多く持つ場合、またはそれらを個別にクエリする場合を除いて、変換可能なプロパティを使用NSDictionaryして、DocumentSettingsエンティティに(アーカイブされた)を保存できます。これにより、NSUserDefaults基本的に辞書のように感じるAPIのように感じることができます。

于 2009-07-25T00:39:01.840 に答える