我使用现有的.sqlite预填充核心数据,代码如下:
// Put down default db if it doesn't already exist
NSError *error = nil;
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:[storeURL path]]) {
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"xyz" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:[storeURL path] error:&error];
}
}
直到我最近升级了我的Xcode并且现在它将.sqlite文件复制到所需的位置但不是相同的大小。预填充的.sqlite文件是4.7 MB,当它用上面的代码复制时,它的大小为3.2 MB。它会出现以下错误:
SQLite error code:1, 'no such table: Z_METADATA'
注意: 如果我手动替换文档中的.sqlite文件,一切正常。