1

ボタンをクリックすると呼び出される関数があります。さらに[self getData]、このメソッドから呼び出されるメソッドがあり、コア データを使用して db の値を更新します。

また、1 分ごとに実行されるバックグラウンド スレッドを実行しています。バックグラウンド スレッドで個別の管理対象オブジェクト コンテキストと管理対象オブジェクト通知を使用しました。しかし、新しいマネージド オブジェクト インスタンスを使用するか[self managedObjectContext][self getData]このメソッドがメイン スレッドで呼び出されるため、マネージド オブジェクト通知を使用する必要があるかはわかりません。

メイン スレッドだけでなくバックグラウンドでもメソッドが実行されている場合のベスト プラクティスは何ですか。

4

1 に答える 1

2

メインのマネージド オブジェクト コンテキストの子であるプライベート キュー同時実行タイプを使用して、一時的なコンテキストを作成できます。

NSManagedObjectContext *temporaryContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
temporaryContext.parentContext = [self managedObjectContext];
[temporaryContext performBlock:^{
   // ...
}]

これを行う方法に取り組んでいるときに、このチュートリアルが非常に役立つことがわかりました: http://www.cocoanetics.com/2012/07/multi-context-coredata/

于 2013-01-29T12:57:54.820 に答える