0

我的应用程序的 Resources 文件夹中有两个或多个数据库,我已将它们复制到 Documents 文件夹中,我的问题是:

如何在我的应用程序中选择要打开的数据库?我可以在代码中只替换 db 的名称吗?

在我的应用程序中,我有一个 UITextfield,用户输入他想要打开的数据库的名称。

4

1 回答 1

0

你在使用 CoreData 吗?你的问题缺乏细节和代码......

如果您使用的是 CoreData,那么当您创建NSPersistentStoreCoordinator

您创建的托管对象模型在创建 NSManagedObjectModel 时被调用,如下所示:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"NameOfModelGoesHere" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

然后在创建 NSPersistentStoreCoordinator 时将 NSManagedObjectModel 与特定数据库配对,如下所示:

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"NameOfDataBaseGoesHere.sqlite"];

NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
}

return _persistentStoreCoordinator;

完全可以设置多个 persistentStoreCoordinators,每个都引用单独的数据库和模型,但调用它们并跟踪它们完全取决于您。命名约定有帮助。

于 2013-11-12T14:46:47.333 回答