Iphone iOS检查数据库是否已创建,并在要加载的.sqlite文件之间进行选择
我正在开发一个使用coredata的iOS应用程序。我有2.sqlite数据库,应该在应用程序启动时加载。一个数据库有英语信息,另一个数据库有葡萄牙语信息。我希望我的应用程序只在第一次运行语言选择时显示,然后加载相应的数据库。之后,我希望加载另一个视图,并且语言选择不应再次出现 到目前为止,我的应用程序只在应用程序开始时加载一个数据库。有人能告诉我怎么做吗?对不起,问题不是很具体:s 谢谢Iphone iOS检查数据库是否已创建,并在要加载的.sqlite文件之间进行选择,iphone,ios,sqlite,core-data,ios6,Iphone,Ios,Sqlite,Core Data,Ios6,我正在开发一个使用coredata的iOS应用程序。我有2.sqlite数据库,应该在应用程序启动时加载。一个数据库有英语信息,另一个数据库有葡萄牙语信息。我希望我的应用程序只在第一次运行语言选择时显示,然后加载相应的数据库。之后,我希望加载另一个视图,并且语言选择不应再次出现 到目前为止,我的应用程序只在应用程序开始时加载一个数据库。有人能告诉我怎么做吗?对不起,问题不是很具体:s 谢谢 最重要的是基本上,您需要允许用户选择其语言,然后使用特定的.sqlite文件作为种子数据建立一个新的NSP
最重要的是基本上,您需要允许用户选择其语言,然后使用特定的.sqlite文件作为种子数据建立一个新的NSPersistentStore 您可以这样做(请原谅伪代码) 答案主要来自这里:
将用户选择的语言存储在keychain或NSUserDefault中。在appdelegate中,检查是第一次加载应用程序(您可以在第一次启动时使用NSUserDefault设置一些值)并加载所选语言文件谢谢:),但如何隐藏允许在第二次运行应用程序时选择语言的视图,然后过渡到适当的视野?谢谢,您需要将他们的选择保存到磁盘,然后检查应用程序何时启动。因此,当我点击english时,应用程序应将“english”保存为我在[NSUserDefaults standardUserDefaults]中的选择。然后,您可以签入应用程序:didFinishLaunchingWithOptions:如果NSUserDefaults有选择权,则将用户发送到其他视图控制器。
if (/*user chose English*/) {
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
[self addSeedDataNamed: @"English.sqlite" toCoordinator:__persistentStoreCoordinator];
}else if (/*user chose portuguese*/){
[self addSeedDataNamed: @"Portuguese.sqlite" toCoordinator:__persistentStoreCoordinator];
}
- (void) addSeedDataNamed:(NSString *)name toCoordinator:(NSPersistentStoreCoordinator *)storeCoordinator
{
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:name];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSReadOnlyPersistentStoreOption, nil];
[storeCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error];
}