iPhone:我应该将数据从应用程序包移动到文档目录吗?

时间:2010-05-12 14:16:17

标签: iphone

我注意到在CoreDataBooks示例中,如果该文件尚不存在,则将默认数据库复制到文档目录:

if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"CoreDataBooks" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
    }
}

我的问题是,它占用的空间是否增加了一倍? 即现在有两个数据库,一个在文件夹中的一个数据库中。

我有一个更大的数据库和一大堆总共大约50mb的图像。有没有其他方法可以解决这个问题而不复制数据?

2 个答案:

答案 0 :(得分:1)

在示例中,这样做是有一个要写入的默认文件。如果不这样做,则必须在代码中创建文件。原因是因为应用程序包位于沙箱中,禁止写入。

如果您需要数据库可编辑,则必须将其移出应用程序包。

答案 1 :(得分:1)

AFAIK,Apple强烈建议不要修改文件包中的文件。因此,如果数据是只读的(例如,很可能是您的图像),则可以将其保存在捆绑包中。可变数据库是另一回事。