CoreData和preload sqlite

时间:2015-09-25 06:08:04

标签: ios objective-c sqlite core-data

我正在尝试为coredata预加载sqlite。我尝试了这样的教程,没关系。

http://www.appcoda.com/core-data-preload-sqlite-database/

但是,在某些方面,我有点不清楚。

1)sredite上是否有coredata图层?或者他们有单独的数据库?

2)预加载sqlite的方法是什么?是否像读取sqlite第1行并保存到核心数据?或者我们要求核心数据使用sqlite文件作为基础数据库?

 if managedObjectContext.save(&error) != true {} //From that example, it read csv file and save to core data..

3)如果它正在读取sqlite第1行,并且如果我有数千行,则会很慢。我可以让核心数据指向我的sqlite文件吗?

修改

如果我这样写,这是否意味着我指向我现有的sqlite?

NSURL *applicationDocumentsDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
NSURL *storeURL = [applicationDocumentsDirectory URLByAppendingPathComponent:@"test.sqlite"];

NSError *error = nil;
[self.persistentStoreCoordinator_busservice addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:@{NSMigratePersistentStoresAutomaticallyOption:@YES, NSInferMappingModelAutomaticallyOption:@YES} error:&error]

1 个答案:

答案 0 :(得分:2)

1)核心数据是一个框架,可让您轻松地从数据存储中存储和检索数据。现在数据存储可以是SQLite, xml, binary files or in-memory

2)你可以逐行读写(我不推荐这个),第二行是让你的核心数据创建的SQLite结构相同,并将你的sqlite复制到同一个地方核心数据查找sql​​ite文件的位置。

3)已经回答,是的,你可以将你的sqlite文件放在(复制)你的核心数据查找sql​​ite文件(在AppDelegate中定义)的相同位置(文档目录)