自从有人第一次启动应用程序以来,我必须将数据预加载到我的核心数据中,以使我的实体始终充满数据。我在 csv 和其他 sqlite 中有一个数据库。哪个是最好的?我该怎么做?我的意思是,我想我应该将我的数据库始终放在我的应用程序的文件夹中,当我第一次启动应用程序时,我会将数据填充到数据库中。不是吗?还是我错了?如果这是好方法?我怎么做?
Best Answer-推荐答案 strong>
我会推荐一个已经映射的 CoreData 存储。无论它之前是由您的应用还是由 Core Data Editor 等编辑器映射的。
在应用委托(delegate)中,您可以预加载数据。在 - (NSPersistentStoreCoordinator *)persistentStoreCoordinator .
您可以删除当前商店:
NSError *error = nil;
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent"CoreDataStore.sqlite"];
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];
如果还没有商店,您可以将预加载的商店移动到位:
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent"CoreDataStore.sqlite"];
if (![[NSFileManager defaultManager] fileExistsAtPath:[storeURL path]]) {
NSURL *preloadURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource"reloadData" ofType"sqlite"]];
NSError* err = nil;
if (![[NSFileManager defaultManager] copyItemAtURL:preloadURL toURL:storeURL error:&err]) {
NSLog(@"Oops, couldn't copy preloaded data");
}
}
关于iphone - 更好的 csv 或 sqlite 将数据预加载到核心数据中吗?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/19438824/
|