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

iPhone:我应该将数据从应用程序包移动到documents目录吗?,iphone,Iphone,我注意到,在CoreDataBooks示例中,如果文件不存在,则会将默认数据库复制到documents目录: if (![fileManager fileExistsAtPath:storePath]) { NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"CoreDataBooks" ofType:@"sqlite"]; if (defaultStorePath) { [f

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

if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"CoreDataBooks" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
    }
}
我的问题是,这会使它占用的空间增加一倍吗?
i、 e.现在有两个数据库,一个在bundle中,一个在documents文件夹中


我有一个更大的数据库和一大堆总计约50mb的图像。有没有其他方法可以在不复制数据的情况下执行此操作?

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


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

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

您可能需要检查应用程序大小。我相信目前你不能通过应用商店发布大于20mb的应用。你知道你从哪里得到的信息吗?我在商店中看到过大于20mb的应用程序,例如“20分钟用餐-Jamie Oliver”=104 MB 20mb的限制用于在没有wi-fi连接的情况下下载应用程序。好的,把数据库移出,把图像放在原处。谢谢你的帮助