写入包中的文件?

4th*_*ace 2 xcode cocoa objective-c

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

Cin*_*er6 11

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

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

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


Rob*_*ier 5

捆绑在磁盘上; 它只是".app"目录.但是,您不应该写入此目录中的文件.虽然目前可以在Mac上使用,但它会破坏代码签名.在iPhone上,你已经无法写入自己的软件包,我们应该会在Mac上看到这种限制.您应该将应用程序文件编写到〜/ Library或〜/ Documents下的各个目录中.有关指导,请参阅文件系统编程指南.