0

データストアにアクセスし、Core Data エンティティを表すオブジェクトを返すシングルトン クラスを作成しました。これは通常のスレッドでは問題ありませんが、バックグラウンド スレッドが管理対象オブジェクト コンテキストの独自のコピーで実行されるため、バックグラウンド スレッドで実行されている別のクラスからこのシングルトン メソッドにアクセスすることに懸念があります。

バックグラウンド スレッドからシングルトンを呼び出そうとするとき、シングルトンの新しいインスタンスを作成し、管理対象オブジェクト コンテキストのバックグラウンド スレッドのコピーを渡す必要がありますか。それとも、シングルトン メソッドに安全にアクセスして、共有管理対象オブジェクトを使用できるようにすることができますか?アプリデリゲートから内部的に取得するコンテキストを教えてください。

4

1 に答える 1

2

データ マネージャー クラスで、関連するすべての Core Data 呼び出しをperformBlock:またはで行うようにします。performBlock:andWait:

そうすれば、呼び出しは常にスレッドセーフな方法で行われます。

ただし、個人的には、通常、メインスレッドで呼び出されるようにデータマネージャーを作成し、意味のあるスレッドでそれ以降の呼び出しを処理します。

于 2014-01-25T13:18:46.210 に答える