我需要我的申请工作如下:
1-用户下载并启动应用程序。
2-应用程序将自动使用特定记录填充(基于核心数据)。 3-应用程序将正常运行。
4-当用户关闭应用程序并重新启动它时。
5_应用程序不会自动使用特定记录填充核心数据,因为它已经存在。
6-用户将无法添加/删除/更新数据。
是否有一种很好的技术可以仅使用核心数据并被Apple接受。
答案 0 :(得分:4)
代码:
// Put down default db if it doesn't already exist
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:storePath]) {
NSString *defaultStorePath = [[NSBundle mainBundle]
pathForResource:@"MyDataFile" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}
未显示,但很关键:根据App Store指南,您为预填充数据的所有文件必须标记为“不备份”,否则您将被拒绝。有关如何执行此操作的详细信息,请参阅此SO问题:Why was my application still rejected after excluding files from iCloud backup using this code?
答案 1 :(得分:3)
我可以告诉你一个非常简单的方法。在app delegate中,在NSUserDefaults中创建一个变量,并在第一次加载应用程序时更改其值。然后,根据NSUserDefaults的值,在Core Data存储中填充所需的数据。这只会发生一次,因为NSUserDefaults变量的值不会再次改变。