我注意到在CoreDataBooks示例中,如果该文件尚不存在,则将默认数据库复制到文档目录:
if (![fileManager fileExistsAtPath:storePath]) {
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"CoreDataBooks" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}
我的问题是,它占用的空间是否增加了一倍? 即现在有两个数据库,一个在文件夹中的一个数据库中。
我有一个更大的数据库和一大堆总共大约50mb的图像。有没有其他方法可以解决这个问题而不复制数据?
答案 0 :(得分:1)
在示例中,这样做是有一个要写入的默认文件。如果不这样做,则必须在代码中创建文件。原因是因为应用程序包位于沙箱中,禁止写入。
如果您需要数据库可编辑,则必须将其移出应用程序包。
答案 1 :(得分:1)
AFAIK,Apple强烈建议不要修改文件包中的文件。因此,如果数据是只读的(例如,很可能是您的图像),则可以将其保存在捆绑包中。可变数据库是另一回事。