我的第一个问题是:我可以在一个小的独立应用程序(例如,称为 ObjectMaker)中创建对象图和数据模型,然后将其保存在那里,然后导入 .sqlite 或任何我将数据导出到实际应用程序中的格式正在制作?从那里,我将执行所有获取请求,进一步编辑和保存数据等。
当然。您可以在您的 ObjectMaker 应用程序中创建您的 sql 存储。完成后,您可以在应用程序的主包中获取该商店并复制(您必须自己做)。
启动时,应用程序会将商店复制到主文件夹中,如下所示。持久存储必须指向该文件夹存储。
NSString *storePath = [[self applicationDocumentsDirectory]
stringByAppendingPathComponent: @"yourStore.sqlite"];
NSURL *storeUrl = [NSURL fileURLWithPath:storePath];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:storePath]) {
NSString *defaultStorePath = [[NSBundle mainBundle]
pathForResource:@"yourStore" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}
我的第二个问题是:是否可以提供用户第一次打开我的应用程序时会得到的对象图的“首次启动状态”(这 5,000 个对象是现成的并且可以访问/查询等?我'希望应用程序附带 .sqlite 或我在 ObjectMaker 应用程序中导出数据的任何格式,并专门使用它,而不知道 .plist 存在。
关于这个问题,我不明白你的目标,但我会尝试提供一些提示。首先,我不太确定用户是否会一次性使用 5,000 个对象。因此,您可以显示一组执行临时查询 ( NSFetchRequest
) 以仅在请求时显示它们。此外,如果您需要通过表格显示对象,我真的建议使用NSFetchedResultsController
. 这门课就是为了这个。它允许对数据进行更多控制,并让 Core Data 为您进行内存管理。例如,它允许指定要检索的对象数量(比如 10 个)。滚动表格,将获取其他 10 个对象,依此类推...
希望有帮助。如果你需要别的东西,请告诉我。