0
コンテキストセットアップ:子ども(プライベートキュー) - >親(メインキュー) - >コアデータ親子コンテキストレースコンディション
時間の約50%私の子コンテキストを保存し、私の親/メインの永続ストアコーディネーターコンテキストは変更を認識せず、永続ストアに保存しません。言い換えれば
func saveContext(context: NSManagedObjectContext, childThread: Bool) {
if context.hasChanges {
do {
try context.save()
print("saved on mainThread: \(!childThread)!")
} catch {
//...
}
if context.parentContext != nil { // private context
dispatch_async(dispatch_get_main_queue(), {
print("preparing to save main context")
self.saveContext(context.parentContext!, childThread: false)
})
}
} else {
print("no changes seen")
}
}
私は子コンテキストで正常に保存した後、私のsaveContext方法が唯一の時間の約50%に何ら変更を、失敗しないと、」プリントアウトし、メインスレッドのコンテキストを保存するための準備見た。
context.save()は非同期で実行されていますか?コンテキスト保存通知のようなものを使用する必要がありますか? (私はそれが親子セットアップのために必要ではないと思った)
これはsaveContextを呼び出す前に実行されます。 – anders32