【发布时间】:2011-07-15 16:08:21
【问题描述】:
我正在尝试使用预先生成的 sqlite 文件,该文件在表中包含 10 000 个对象。
我已经通过 iPhone 模拟器在 sqlite 中使用 coredata 创建并添加了对象。
我已将 iPhone Simulator ressource 文件夹(包含 10 000 个对象)中包含的 sqlite 复制并粘贴到我的项目目录中的 ressource 文件夹中。
我在第一次启动我的应用程序时所做的是将这个生成的数据库复制到我在 iphone 上的应用程序文档目录中:
NSBundle * mainBundle = [NSBundle mainBundle];
NSString *oldPath = [mainBundle pathForResource:@"MyBase" ofType:@"sqlite"];
NSString *newPath = [[app_delegate applicationDocumentsDirectory] stringByAppendingPathComponent: @"MyBase.sqlite"];
BOOL copied = [[NSFileManager defaultManager] copyItemAtPath:oldPath toPath:newPath error:&error];
if (!copied) {
NSLog(@"Moving database from %@ to %@, error: %@", oldPath, newPath, error);
}
它工作正常,但我有以下问题: 比较对原始 MyBase.sqlite(在我的设备上创建并填充相同的 10 000 个对象)的访问与新副本,对表的所有访问所花费的时间是正常生成的 MyBase.sqlite 的 3 倍。
不知在模拟器上生成sqlite时,索引属性是否不存在? 我需要帮助!
【问题讨论】:
-
您是否选中了您正在访问的对象属性的索引复选框?
标签: iphone sqlite optimization core-data time