我建立一个项目,我需要预先填充与现有数据coredata数据库。
我建了一个解析器创建在iPhone模拟器sqlite的文件,一切工作正常。 我使用的是单一的实体,属性的一个索引。 解析我的数据文件到核心数据后的表现是伟大的,一切都是美好的。
我现在用在相同的数据模型,同一指数等项目产生的sqlite的文件(〜200MB)...和首次启动我拷贝过来的数据库文件预填充数据
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"myproject" ofType:@"sqlite"];
NSString *storePath = [[[self applicationDocumentsDirectory] path] stringByAppendingPathComponent: @"myproject.sqlite"];
NSError *error;
if (![[NSFileManager defaultManager] fileExistsAtPath:storePath])
{
if ([[NSFileManager defaultManager] copyItemAtPath:defaultStorePath toPath:storePath error:&error])
NSLog(@"Copied starting data to %@", storePath);
else
NSLog(@"Error copying default DB to %@ (%@)", storePath, error);
}
复制工作正常,并且数据可以正常访问。 然而,表现更是惨不忍睹,显然是不能被使用的索引。
一看拷贝后的源码文件的大小,它从200MB去了120MB。
一切都在模型中,需要建立索引,而索引检查看起来没事。
1)是否有不超过复制源码时被删除索引数据的方法吗?
2)是否有可能以编程方式重建索引?
3)任何其他的想法?