gpt4 book ai didi

ios - iPhone 重启后核心数据不保留数据库

转载 作者:行者123 更新时间:2023-11-29 00:59:43 27 4
gpt4 key购买 nike

我使用的是 Swift 2.2 iOS 9.3.1 和 9.3.2(测试版)iPhone 5s 和 6s。

在 iPhone 5s 和 9.3 上运行模拟器时,Core Data 会在重启后保留数据库。但在物理设备上运行时不会。

我制作了一个非常简单的待办事项应用程序来学习更多 Swift 和现在的 Core Data。我遵循了一些教程 https://www.raywenderlich.com/115695/getting-started-with-core-data-tutorialApples Core Data Programming guide .

这个SO Xcode Swift application deployed to iphone losses CoreData after iPhone reboot有看起来相同的问题,但事件很少。希望提供更多信息有助于解决我的问题。

当应用程序进入后台和终止时,我会保存 MOC。我在我的 DataController 中调用这个函数并观察它打印了预期的文本。

func saveContext () {
if managedObjectContext.hasChanges {
do {
try managedObjectContext.save()
print("DataController saveContext")
} catch {
let nserror = error as NSError
NSLog("Unresolved error \(nserror), \(nserror.userInfo)")
abort()
}
}
}

我正在按照其他人的建议保存到 Documents 目录。

...
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
...

我已经尝试用谷歌搜索这个问题几个小时,但我无法理解为什么会发生这种情况。但我的谷歌搜索技能不够强,或者我只是忽略了显而易见的事情。

最佳答案

我使用这个功能,iPhone重启后我仍然有我的数据。

// Save data to CoreData
func saveLocalUserProfile(variables, ....) {
// ----------------------------------------------
// Create the core data object
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let entity = NSEntityDescription.entityForName("YourTable", inManagedObjectContext:managedContext)
let userProfile = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
// ----------------------------------------------
// Set datas
userProfile.setValue(variable, forKey: "varaible")
....

// -----------------------------------------------
// Save data into Core Data
do {
try managedContext.save()
print("Save ok")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
}

关于ios - iPhone 重启后核心数据不保留数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37156921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com