gpt4 book ai didi

ios - 是否可以保存 NSManagedObjectModel?

转载 作者:行者123 更新时间:2023-11-28 19:03:34 26 4
gpt4 key购买 nike

我有以下要求:使用 .xml 文件中的数据创建并填充 SQLite 数据库,该文件可以随时具有不同的结构,因此我无法使用 Xcode 创建 NSManagedObjectModel,它必须在运行时。我已经以编程方式成功创建了一个 NSManagedObjectModel,创建了持久存储并使用 .xml 中的数据填充了 sqlite 文件。但是,下次我使用该应用程序时,持久存储与 NSManagedObjectModel 不兼容(我不想每次运行该应用程序时都重新创建模型,只是第一次)。有没有办法保存我以编程方式创建的模型并在下次需要时加载它?我在示例中只能看到从 NSBundle 加载的模型。

最佳答案

Is there any way to save the model I created programmatically and load it the next time it is needed?

是的。 NSManagedObjectModel 符合NSCoding,这意味着您可以轻松地将其转换为/自NSData,并保存和读取NSData 很简单。

保存模型:

NSString *modelPath = // path where you want to save
NSData *modelData = [NSKeyedArchiver archivedDataWithRootObject:self.managedObjectModel];
[modelData writeToFile:modelPath atomically:YES];

读取保存的模型:

if ([[NSFileManager defaultManager] fileExistsAtPath:modelPath]) {
NSData *savedModelData = [NSData dataWithContentsOfFile:modelPath];
NSManagedObjectModel *savedModel = [NSKeyedUnarchiver unarchiveObjectWithData:savedModelData];
}

关于ios - 是否可以保存 NSManagedObjectModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22649162/

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