我是iPhone开发的新手。我意识到有很多方法可以在用户最初打开应用程序时导入数据。然而,它似乎更容易(在我的应用程序的情况下)手动(通过应用程序模拟器中的应用程序的UI)将数据加载到CoreData,然后将其上载到Apple进行审核。 关于该应用程序的更多背景知识。它是一种举重/记录应用程序。我希望通过上述方法“预加载”一些初始练习和锻炼计划以启动用户。 这可能吗?或者是在模拟器中输入的数据仅存储在我的本地计算机上,而不是在提交时发送给苹果的应用程序包中?
答案 0 :(得分:1)
数据库是一个文件。设置NSPersistentStoreCoordinator
时,您的名称和位置由您定义。
如果您使用的是Xcode AppDelegate生成的模板代码,则以应用程序名称MyApp.sqlite
命名并存在于应用程序文档文件夹中
您需要填充数据库,然后将文件从模拟器文件夹复制到Xcode项目中。然后,您需要确保其中一个捆绑资产。将其添加到项目时,默认情况下应该是这样。
当您的应用首次启动时,您可以将文件从捆绑包复制到用户本地安装的Documents文件夹中。
NSError *error = NULL;
NSString *dbPath = [[NSBundle mainBundle] pathForResource:@"myApp" ofType:@"sqlite"];
NSString *docsfolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *targetpath = [docsfolder stringByAppendingPathComponent:[dbPath lastPathComponent]];
[[NSFileManager defaultManager] copyItemAtPath:dbPath toPath:targetpath error:&error];
请勿尝试将捆绑包中的文件作为活动商店引用,因为您没有获得该文件的写入权限。
但是,您可以将持久性存储设置为只读(如果那是您想要的)
[persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options: NSReadOnlyPersistentStoreOption error:&error]`
答案 1 :(得分:0)
是的,你可以。您可以在首次运行时将资产包中的SQLite文件复制到文档目录,并使用生成的URL作为Core Data存储的路径。
答案 2 :(得分:0)
是的,可以使用数据库中的某些数据上传iphone应用程序
答案 3 :(得分:0)
你可以毫无问题地做。 您只需填写数据库并将其包含在您的项目中即可。 添加代码以将此文件复制到设备上的目标位置(例如:Library / Cache文件夹)。
然后就像使用新的一样使用它。