0

NSManagedObjectとりわけ、Apple のドキュメントhttps://developer.apple.com/library/mac/documentation/cocoa/conceptual/coredata/Articles/の「ドラッグ アンド ドロップ」に関する情報を使用して、サブクラスにドラッグ アンド ドロップ操作を実装しようとしています。 cdUsingMOs.html#//apple_ref/doc/uid/TP40001803-CJBDBHCB .

Person という名前の NSManagedObject サブクラスがあり、その managedObjectID (URI エンコード) を使用してリンク操作を実行したいと考えています。ドキュメントには、ペーストボード上の URI エンコードされた moID から Person オブジェクトを復元する次の方法が記載されています。

NSURL *moURL = // get it from the pasteboard ...
NSManagedObjectID *moID = [[managedObjectContext persistentStoreCoordinator]
    managedObjectIDForURIRepresentation:moURL];
// assume moID non-nil...
NSManagedObject *mo = [managedObjectContext objectWithID:moID];

managedObjectContext にアクセスするにはどうすればよいですか? このコード ( initWithCoder:) を実行した時点では、値はまだnilです。

4

1 に答える 1

0

管理対象オブジェクト コンテキストをスクラッチパッドと考えてください。あなたが投稿したリンクはそれを次のように説明しています:

管理対象オブジェクトを変更するだけでは、変更がストアに保存されることはありません。管理オブジェクト コンテキストはスクラッチパッドとして機能します。管理対象オブジェクトを作成して登録し、オブジェクトに変更を加え、必要に応じて変更を元に戻したりやり直したりできます。特定のコンテキストに関連付けられた管理対象オブジェクトに変更を加えた場合、それらの変更は、コンテキストに save: メッセージを送信して変更をコミットするまで、そのコンテキストに対してローカルのままです。

したがって、他の場所で使用するのと同じコンテキストを使用できます。Apple Core Data Templates を使用して appDelegate に単一のコンテキストを作成するとします。このコンテキストがmanagedObjectContextコードになります。moオブジェクトを操作し、最後にsave:コンテキストを処理するか、rollback.

于 2013-10-28T11:39:50.007 に答える