2009-08-28 63 views
2

如果您向下滚动到此处link处的“写入文件和URL”部分,路径是否可变必须是磁盘上的文件?是否可以写入包中的文件或者是否必须首先部署它?写入捆绑文件?

+0

你问是否可以写入存储在应用程序包中的文件? – mipadi 2009-08-28 15:48:28

回答

11

您可以根据需要将文件写入应用程序包。只需通过NSBundle的pathForResource:ofType:方法获取文件的路径,然后就可以写入该文件。如果您只需要该分发包的目录,请使用resourcePath

你不要想要做到这一点,但。有各种各样的原因,但你会破坏代码签名,这是一个很大的原因。您应该使用已建立的约定(例如写入库:应用程序支持:您的应用程序)。

编辑:对于一个(可能)更有说服力的理由不这样做......当我第一次学习可可编程时,因为我不想打扰图书馆,但是,这真的很烦人,因为每次你改变你的程序时,你将失去该程序的所有保存数据/设置(假设你没有使用NSUserDefaults作为首选项)。我一直不得不将它从旧版本移到新版本。通过使用该库,您不必担心这一点。

+1

另外,不是_all_用户可以写入应用程序包中的文件和目录。你真的不应该写入应用程序包。 – mipadi 2009-08-28 17:59:21

+0

是的,这是一个很好的观点。 – Cinder6 2009-08-28 19:31:12

5

该软件包位于磁盘上;它只是“.app”目录。但是,您不应该写入该目录中的文件。虽然目前在Mac上可能,但它会破坏代码签名。在iPhone上,你已经无法写入你自己的软件包,我们预计未来在Mac上会看到这种限制。您应该将应用程序文件写入〜/ Library或〜/ Documents下的各个目录中。请参阅File System Programming Guide以获取指导。

+0

链接被破坏! – 2014-02-09 15:40:16

+1

已更新指向新位置的链接 – 2014-02-09 17:07:20