で実行されますコアデータはメインスレッドで実行する必要があります。プロパティ遅延初期化は、私が財産を持っているメインスレッド
だから私はに初期化子を変更する際に考えていた:
- (NSArray *) emails
{
if (_emails == nil) {
if (NSThread isMainThread])
{
CoreDataElement* cde = [user grabCoreDataElement];
_emails = [cde.emails allObjects];
}
else
{
__block NSArray *result = nil;
dispatch_sync(dispatch_get_main_queue(), ^{
result = self.emails;
});
return result;
}
}
return _emails;
}
だから私の質問は以下のとおりです。
- (1)必要なMainThread執行ますか?
- (2)上記のコードは、レイジーイニシャライザとコアデータオブジェクトのアクセスを処理する標準的な方法ですか?