我的问题是上述标题,但我会把它写在这里再一次

是否有可能复制不同plist进入应用程序包码明智的??

这实际上是一位有关的在我的前一问题;) 创建一个词典的财产列表的编程方式

但因为我可以写出来的plist(和测试如果我做错了什么)我想知道如果我可以复制我的书面文件

[testBook writeTofile:@/Users/jack/testbook2.plist" atomically:NO];

我应用程序包 在代码 (因此,它可以从这里读 NSString *path = [[NSBundle mainBundle] bundlePath]; NSString *dataPath = [path stringbyAppendingPathcomponent:@"testbook2.plist"];

另一个替代方案是良好的,以及例如如果我可以读我的plist直接从另外的路径,而不是mainBundle

有帮助吗?

解决方案

物理,是的这是可能的时候。

不,不要这么做!

好吧...复制东西进入你的应用程序包,是坏的,应束是不是你设置保持或数据。你应该想想你的程序束以只读。你应该这样做有几个原因:

  1. 虽然大多数的时间上的用户Mac OS X系统具有权写入一个应用程序,有时他们没有。想想谁是孩子不使用管理帐户或实验室部署在学校。
  2. 它将无效codesigning.如果你签上你的应用程序,这将会改变的签名,并打破的协同设计,造成各种奇怪的问题(丢失任何权限的防火墙的应用程序,告知用户应用程序已改变,并且要求他们的钥匙串的权限再等)。在未来,这也可弹出各种各样的警告,因为篡改一个程序是一个很大的安全红色标志。
  3. 它不会的工作。这可能不是一个问题,但是如果你每次打算使用这个代码在iPhone上的应用程序包的沙盒只读的

正确地把这种东西是成为一个子文件夹中的应用的支持文件夹

其他提示

我不知道究竟你在做什么,但根据您的应用程序,您可能需要使用应用程序支持目录:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
if ([paths count] > 0) {
    NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"App Name"];
    // Create the directory if it doesn't exist, etc.
} else {
    NSLog(@"Fail!");
    // ...
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top