我对核心数据并不熟悉,所以我想知道是否有可能将不同的预先填充的sqlite数据库加载到核心数据中以及性能如何?
我有一个客户端将他们的数据存储在远程服务器上的多个sqlite数据库中。每个sqlite数据库基本上代表应用程序中的一个组,可能有10-100个不同的组,每个组都有自己的小sqlite数据库。所有数据库都具有相同的模式和表结构,可以远程更新,一次只能使用一个数据库。
在这种情况下使用核心数据是否可行或甚至可取?我可以:
有什么想法吗? THX
答案 0 :(得分:2)
是的,我现在就这样做。如果需要,我可以给你更多的例子,但这就是我的工作:
或者,您可以从网上下载而不是执行第2步和第3步 - 但是我只会在非常大的情况下执行此操作,并且在应用加载时可能无法立即使用。
内部applicationDidFinishLaunching:
NSFileManager *fm = [[NSFileManager alloc] init];
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *mapPath = [documentsDirectory stringByAppendingPathComponent: @"datafile.sqlite" ];
if (![fm fileExistsAtPath:mapPath]) {
// Does Not Exist!!
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"datafile" ofType:@"sqlite" inDirectory:@"datafiles"];
NSData *myData = [NSData dataWithContentsOfFile:filePath];
if (myData)
[fm createFileAtPath:mapPath contents:myData attributes:nil];
}
答案 1 :(得分:1)
在过去的几周里,我和我的同事正在讨论在服务器上预先填充CoreData存储的最佳方法。我们找到了Objective-C Web框架Bombax和
我想尽快试一试。
我们的想法是,Bombax服务器可以使用所有可用的框架,包括CoreData
缺点:服务器必须是mac。