我需要我的应用程序工作如下:
1-用户下载并启动应用程序。
2- 应用程序将自动用特定记录填充(基于核心数据)。3-应用程序可以正常工作。
4-当用户关闭应用程序并重新启动它时。
5_应用程序不会自动用特定记录填充核心数据,因为它已经存在。
6-用户将无法添加/删除/更新数据。
是否有一种仅使用核心数据并被 Apple 接受的好技术来做到这一点。
代码:
// 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 问题:使用此代码从 iCloud 备份中排除文件后,为什么我的应用程序仍然被拒绝?
我可以告诉你一种非常简单的方法。在应用程序委托中,在 NSUserDefaults 中创建一个变量,并在第一次加载应用程序时更改其值。然后根据 NSUserDefaults 的值,在 Core Data 存储中填充您想要的数据。这只会发生一次,因为 NSUserDefaults 变量的值不会再次改变。