Macos 核心数据实体全局数据

Macos 核心数据实体全局数据,macos,core-data,Macos,Core Data,我有一个用于存储地震报告的核心数据实体。我想存储一些全局数据,以跟踪数据上次更新的时间 该日期应该是存储中所有实体对象通用的单个日期 我可以为此使用实体userInfo吗?我无法确定这是只读的还是可以在运行时修改 有更好的办法吗?我不想将其存储在UserDefaults中,因为如果删除sql文件,我希望“日期更新”数据也消失。除了实际数据之外,持久存储还可以包含有关存储的元数据。那是个好地方。元数据是NSPersistentStore的一部分,因此您必须深入到NSPersistentStore中

我有一个用于存储地震报告的核心数据实体。我想存储一些全局数据,以跟踪数据上次更新的时间

该日期应该是存储中所有实体对象通用的单个日期

我可以为此使用实体userInfo吗?我无法确定这是只读的还是可以在运行时修改


有更好的办法吗?我不想将其存储在UserDefaults中,因为如果删除sql文件,我希望“日期更新”数据也消失。

除了实际数据之外,持久存储还可以包含有关存储的元数据。那是个好地方。元数据是
NSPersistentStore
的一部分,因此您必须深入到
NSPersistentStore
中才能获取并更改它。像这样的

guard let persistentStore = persistentContainer.persistentStoreCoordinator.persistentStores.first else {
    return
}
var metadata = persistentContainer.persistentStoreCoordinator.metadata(for: persistentStore)
metadata["updated"] = Date()
persistentContainer.persistentStoreCoordinator.setMetadata(metadata, for: persistentStore)
self.saveContext()
最后一行出现是因为在保存更改之前不会保存元数据,即使它是元数据而不是实际数据


最好先读取现有的元数据,因为核心数据将自己的一些元数据放在其中。您可能无法破坏它,但请确保先读取它,并保留现有值。

除了实际数据之外,持久存储还可以包含有关存储的元数据。那是个好地方。元数据是
NSPersistentStore
的一部分,因此您必须深入到
NSPersistentStore
中才能获取并更改它。像这样的

guard let persistentStore = persistentContainer.persistentStoreCoordinator.persistentStores.first else {
    return
}
var metadata = persistentContainer.persistentStoreCoordinator.metadata(for: persistentStore)
metadata["updated"] = Date()
persistentContainer.persistentStoreCoordinator.setMetadata(metadata, for: persistentStore)
self.saveContext()
最后一行出现是因为在保存更改之前不会保存元数据,即使它是元数据而不是实际数据

最好先读取现有的元数据,因为核心数据将自己的一些元数据放在其中。您可能无法破坏它,但请确保先阅读它,并保留现有值