のiOS 5の間でオブジェクトを共有するには、迅速NSPrivateQueueConcurrencyType
を使用してMOCを初期化して、コアの親指のルールのperformBlock:
コアデータのNSPrivateQueueConcurrencyTypeとスレッド
にフェッチいずれかを実行して、バックグラウンドスレッドでデータをフェッチするための新しい方法を導入しましたデータはスレッド/キュー間で管理対象オブジェクトを共有できないというデータでした。 performBlock:
の場合はまだですか?
[context performBlock:^{
// fetch request code
NSArray *results = [context executeFetchRequest:request error:nil];
dispatch_async(dispatch_get_main_queue(), ^(void) {
Class *firstObject = [results objectAtIndex:0];
// do something with firstObject
});
}];
私は結果配列/オブジェクトをbgキューとメインキューの間で共有しているため、依然として受け入れられません。それには管理オブジェクトIDを使用する必要がありますか?
この情報のソースはどのようなものですか?これは確かに私がそうであると予想されるものですが、Appleのマニュアルではブロック内でMOC操作を行わなければならないと述べています。ブロック内に作成されたMOについては明示的ではありません。 –
MOはコンテキストに属します。それらはスレッドセーフではないため、属しているコンテキストのキュー内でのみ触れなければなりません。それはドキュメントからはっきりとしたものではありませんが、それはそれが言うことです。私はコアデータチームからこの情報を得ました。 –
ドキュメントはどこですか?誰でもリンクがありますか? – djskinner