7

NSManagedObjectContext には、同時実行を容易にするために performBlock: および performBlockAndWait: メソッドが追加されました。私はそれらを使用してきましたが、おそらくかなり素朴に使用していましたが、実際に尋ねたことのない質問があることに気付きました.

performBlock メソッドの 1 つに NSManagedObject サブクラスを作成すると、その「ホーム」スレッドはその親コン​​テキストのスレッドになります。これは、NSPrivateQueueConcurrencyType の場合、おそらく他にアクセスできない独立したスレッドです。

では、管理対象オブジェクト内に含まれるデータにアクセスするためだけに performBlock 呼び出しを行う必要がありますか? それとも、ゲッターを使用する場合に私を保護するのに役立つバックグラウンド マジックがありますか? (またはセッター、それは悪い考えのようですが...)

4

2 に答える 2

9

performBlock:またはを使用する必要がありますがperformBlockAndWait:、例外が 1 つあります。NSMainQueueConcurrencyType 使用していて、メイン キューで管理対象オブジェクトを使用している場合は、ブロックなしで直接アクセスできます。これは、管理対象オブジェクトから UI を更新する必要がある場合、またはその逆の場合に非常に便利です。

于 2013-05-20T17:26:17.500 に答える