2

管理対象オブジェクトエンティティモデルに一意のIDフィールドを追加したいと思います。

Core DataがID関係を使用しないことは知っていますが、これは異なります。新しいスレッドがそのデータから管理対象オブジェクトをフェッチできるように、スレッドセーフデータを別のスレッドに渡す方法が必要です。

任意の形式にすることができますが、理想的には単一のオブジェクト/変数/値のみです。

CFUUIDをNSStringとしてオブジェクトに追加できますが、これが理想的かどうかわかりませんか?私は何か他のことをすべきですか?

任意の代替手段を歓迎します。あるいは、CFUUIDが進むべき道であることを確認するだけでも構いません。

4

1 に答える 1

3

@Carl Veazeyが言及しているように:NSManagedObjectIDまさにあなたが探しているものです!

そしてここに短いスニペットがあります:

  NSManagedObject *objectInMainContext = ....;

  NSManagedObjectID *objectID = objectInMainContext.objectID;
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSManagedObjectContext *newThreadContext = [[NSManagedObjectContext alloc] initWithConcurrencyType: ... ];    
    [newThreadContext objectWithID: objectID];
    ....
    ....
  });
于 2013-01-14T10:58:58.847 に答える