0

私は現在、Core Data をさらに掘り下げており、Core Data NSManagedObject Models の使用について若干の混乱があります。

たとえば、名、姓、住所などのプロパティを持つ「連絡先」エンティティがあります...

私が理解しようとしているのは、NSManagedObject を通常の NSObject として使用するための「ベスト プラクティス」があるかどうかです。

たとえば、JSON でいくつかの連絡先データを返すサーバーがありますが、それをある種の NSObject として返したいので、独自のプロパティ、メソッドなどを持ちます...しかし、一方でそれはばかげているでしょう連絡先エンティティを表す 2 つのクラスを作成します。1 つはサーバー データ (NSObject) からサニタイズされたオブジェクトを提供する状況を処理するためのもので、もう 1 つはコア データ (NSManagedObject) を処理する場合です。両方の目的で単一のオブジェクトを使用する方法はありますか? この状況でのベストプラクティスは何ですか?

編集: これが私が抱えている一般的な問題です: http://pastebin.com/WHWNqj2f

4

1 に答える 1

0

このために複数のクラスを用意する必要はありません。すべての場合にマネージド オブジェクトを使用するだけです。あなたはコメントで「コンテキストを与えずに NSManagedObject を初期化することはできません」と述べていますが、実際にはそうではありません。[NSManagedObject initWithEntity:insertIntoManagedObjectContext:]またはを使用して管理オブジェクトを作成する場合[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:] 、管理オブジェクト コンテキストを提供する必要はありませんnil有効な を指定する限り、その引数がであっても問題ありませんNSEntityDescription。得られるのは、どの管理対象オブジェクト コンテキストにも関連付けられていない管理対象オブジェクトです。これは、このオブジェクトを保存しなくても、管理対象オブジェクト コンテキストの変更を保存できるため、一時オブジェクトに便利です。

後でオブジェクトを管理オブジェクト コンテキストに保存する場合は、 を使用します[NSManagedObjectContext insertObject:]。その時点で、管理対象オブジェクトはコンテキストに関連付けられるため、コンテキストへの変更を保存するとオブジェクトが保存されます。

于 2013-10-14T17:02:49.367 に答える