我想发送静态只读数据以在我的核心数据模型中使用。问题是存在明显不同的持久存储类型,我不知道这些类型的格式是否应该是不透明的,或者我是否应该能够手动构建它们。
现在我只有一个 plist,它非常小(可能总共 30 个条目)。
我应该在首次安装应用程序时编写代码以将 plist 导入我的数据存储,还是有什么方法可以提供手动构建的数据存储文件的初始版本?
(我正在使用默认的 sqlite 持久存储。)
我不会尝试手动构建它,但您当然应该执行导入并保存最终的 Core Data SQLite 文件以随您的应用程序一起提供。
我计划编写一个小型 mac 实用程序(使用相同的数据模型)来为我的 iPhone 应用程序生成 Core Data SQLite 文件(导入实际上来自 Web 服务器)。然后,我将该实用程序保存的文件添加到我的 iPhone 应用程序的项目中。
为了回答我自己的问题,我注意到 Recipes 示例代码应用程序带有一个默认的 sqlite 后备存储:
// If the expected store doesn't exist, copy the default store.
if (![fileManager fileExistsAtPath:storePath]) {
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"Recipes" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}
但是话又说回来,出于另一个目的,它在 plist 文件中带有一些静态只读数据!(TemperatureData.plist)所以去图......
知道这一点的人不多,但您实际上可以在 OSX 上使用核心数据,然后在 iOS 上使用该存储文件。所以基本上编写一些使用完全相同的模式和模型对象的代码(它们都应该在 OSX 上编译和工作)。
如果您了解 iOS SDK,OSX 开发并不难掌握 :-)
高温高压