7

我有很多 jpeg+png+html 文件要添加到我的应用程序中,当然,当我“构建”它时,我的所有资源文件都会添加/包含在 myApp mainBundle 文件夹中。

我希望能够在运行时通过代码修改我的一些资源,但是:

1) 我们不能在 mainBundle 的运行时通过代码“写入”文件

2)我们可以在“文档”文件夹(或临时,或...)

3)我们可以在运行时通过代码复制“文档”文件夹中的文件

4) 在“Documents”中处理 mainBundle 文件后,我们无法删除它们

但这意味着我们的应用程序的大小将翻倍,而在大型应用程序中(这是我的情况)这应该是无意义的,我们将有很多大文件再也不会在 mainBundle 中使用......

所以我想知道这个问题是否有解决方法(只是我认为这是无意义的?)通过xCode或其他类似解决方案在“构建”阶段直接在“文档”文件夹中添加文件。 ..

ps

一个可能是在用户第一次通过服务器/互联网直接在“文档”文件夹中使用我的应用程序时下载所有文件,这样我的应用程序通过 iTunesStore 下载不会很繁重,但这当然会花很多时间第一次为最终用户,当然不能很好地接受......

4

2 回答 2

4

好吧,您不能,因为文档目录是在安装应用程序时创建的。没有办法在编译时做你想做的事。你也不能在安装时做到这一点。

由于您需要该文件,因此您必须将它们包含在您的捆绑包中,我什至包含了 10MB sqlite 数据库,我在首次启动时直接复制到文档中。就是这样。

于 2011-07-20T06:48:28.423 回答
2

不适用于应用程序

在编译期间将文件复制到文档目录需要您提前知道该目录。您通常无法知道这一点,因为在安装您的应用程序之前可能尚未创建文档目录。

可以在模拟器上进行单元测试

但是,文档目录的位置取决于目标平台和您正在构建的包的类型。对于基于在 iOS 模拟器上执行的 SenTestingKit 的单元测试,您可以在编译时确定文档目录,只需在“运行脚本”构建阶段执行此操作:

~/Library/Application Support/iPhone\ Simulator/$IPHONEOS_DEPLOYMENT_TARGET/Documents

请注意,这实际上只适用于单元测试包,因为它们不是在专用的应用程序目录中执行的,因此可以访问模拟器平台上的“共享”文档目录。

于 2012-01-18T13:43:03.797 回答