gpt4 book ai didi

ios - 保存不适用于 Swift 中的核心数据

转载 作者:行者123 更新时间:2023-11-28 10:21:03 25 4
gpt4 key购买 nike

我有一个名为“Data”的实体,其中包含一个名为“highscore”的属性

我得到了我的 NSManagedObject 类:

class Data: NSManagedObject
{
@NSManaged var highscore: NSNumber
}

我尝试了以下几行:

let managedObjectContext = (UIApplication.sharedApplication().delegate
as! AppDelegate).managedObjectContext
let entityDescription = NSEntityDescription.entityForName("Data",
inManagedObjectContext: managedObjectContext)
let data = Data(entity: entityDescription!,
insertIntoManagedObjectContext: managedObjectContext)

data.highscore = 100

managedObjectContext.insertObject(data)
try! managedObjectContext.save()

print(data.highscore)

所以当我运行我的应用程序时,一切正常,控制台打印“100”。但是当我注释掉 data.highscore = 100 行并重新启动我的应用程序时,控制台打印“0”而不是“100”。我哪里错了?

最佳答案

每次运行您的应用程序时,它都会创建一个新的 Data 实例。这就是这一行的作用:

let data = Data(entity: entityDescription!,
insertIntoManagedObjectContext: managedObjectContext)

并不是 Core Data 不保存,而是您永远不会查找您保存的任何数据。如果你想得到一个以前的实例,你需要在你的持久存储中查找它。查看 NSFetchRequest 以查找以前保存的数据。

关于ios - 保存不适用于 Swift 中的核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35092860/

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