2

私はコアデータに非常に厄介な問題を抱えています。NSManagedObject サブクラス、つまり「Customer」があり、すべて問題ありません。コアデータ スタックの外に新しい Customer を作成する必要がある場合があり、場合によってはそれを保存する必要があります。

NSUndomanager を使用できることはわかっていますが、あまりお勧めできません。

現在、Customer_managed (NSManagedObject のサブクラス) と Customer_unmanaged (NSObject のサブクラス) の 2 つのクラスがあります。Customer_unmanaged に -(void)save メソッドを追加しましたが、この 2 つのクラスは非常に結合されているため、最適なパターンを探しています。

ありがとう

4

2 に答える 2

0

コンテキストなしで NSManagedObject を作成することは可能です。Marcus Zarra は、この SO-answerでそれについて書いてい ます。アドバイス: nil-context でオブジェクトを作成しようとすると、awakeFromInsert:は呼び出されません。

于 2012-11-02T20:14:01.603 に答える
0

あなたはこれについて間違った方法で進んでいます。管理対象オブジェクトを作成するには、常に管理対象オブジェクト コンテキストを使用する必要があります。破棄したい場合は、保存する前にオブジェクトを削除するだけで、永続ストアにアクセスすることはありません。

2 つのエンティティを分離したい場合は、別々のコンテキストを使用することを検討してください。

または、とにかく「管理されていない」エンティティを保存することを検討してください。ただし、追加のブール属性でそれらをマークしますunmanaged。その後、いつでもパージしたり、取得時に無視したりできます。

于 2012-11-02T11:26:14.770 に答える