NSPersistanceContainerを使って生徒の詳細を保存するアプリを作成しました.jsonからデータを取得してdbに保存していますが、その時点では「私はフェッチ結果数が、私はsqliteのファイルをチェックするときのテーブルがあり、DBへ保存していながら、コンテキストが空ではありません0viewContextはデータベース(app.sqlite)に保存されていませんSWIFT
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "Students_dev")
let storeURL = try! FileManager
.default
.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
.appendingPathComponent("Students_dev.sqlite")
print("URL :",storeURL)
let storeDescription = NSPersistentStoreDescription(url: storeURL)
storeDescription.shouldMigrateStoreAutomatically = true
storeDescription.shouldMigrateStoreAutomatically = true
container.viewContext.automaticallyMergesChangesFromParent = true
container.persistentStoreDescriptions = [storeDescription]
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
// MARK: - Core Data Saving support
func saveContext (context: NSManagedObjectContext) {
persistentContainer.performBackgroundTask({ (context) in
if context.hasChanges {
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
})
}
を返しアプリを再起動した場合の結果が> 0のカウントフェッチきメートル空の。私の側から欠けているものを手に入れませんでした。
コードは今、その警告がなくなってきたが、私はsqlliteファイルをチェックする際のデータは、私が空に表示されます。 – Joe
saveContextメソッドでブレークポイントを設定して、context.hasChangesがtrueであることを確認しましたか?私はあなたが新しいオブジェクトを作成したコンテキストを保存していないかもしれないと推測できますか? – kharrison
context.hasChangesは – Joe