2

nsfetchedresultscontrollerを使用してcoredataからのデータを含むテーブルビューを使用しています。ビューが読み込まれると、を使用して新しいエンティティを作成します

SomeManagedObject *someManagedObject = [NSEntityDescription insertNewObjectForEntityForName:@"SomeManagedObject" inManagedObjectContext:self.managedObjectContext];

このようにして、新しいエンティティがテーブルビューに表示されます。ここで、このエンティティを一時的なものにしたいのですが、テーブルビュー内のオブジェクトを編集してmanagedObjectContextを保存すると、一時的なエンティティも保存されるので、それは望ましくありません。

管理対象オブジェクトコンテキスト内のすべてではなく、1つのオブジェクトのみを保存する方法ですか?

私のテーブルビューの一時オブジェクトを作成する他の方法です。

どんな助けでも大歓迎です。ありがとうトン

4

3 に答える 3

2

alloc init を使用して新しい NSManagedObject を作成し、NSManagedObjectContext の代わりに nil を渡します。次に、後でそのオブジェクトを永続的にしたい場合は、コンテキストを設定します。ただし、コンテキストに関連付けられないため、NSFetchedResultsController で表示することはできません。

あなたの最終的な目標が何であるかを説明できれば、より良い答えを提供できます。

于 2010-08-07T23:51:59.363 に答える
0

いいえ、managedObjectContext では、保存は全か無かです。私が知らないのは、管理対象オブジェクトの永続ストアを nil に設定するとどうなるかです

- (void)assignObject:(id)object toPersistentStore:(NSPersistentStore *)store

その後、managedObjectContext を保存すると、このオブジェクトは保存されません。あくまでも推測ですが、うまくいくかどうか教えてください;-)

于 2010-06-27T21:10:08.123 に答える
0

一時管理対象オブジェクトの場合は、2 番目の管理対象オブジェクト コンテキスト (MOC) を使用して作成します。終了したら、保存せずに MOC を解放します。

ユーザーがキャンセルしたときに、同じアプローチを使用して新しく追加されたオブジェクトを破棄する CoreDataBooksの Adding a Book コードを見てください。

于 2010-08-06T20:08:55.073 に答える