在iPhone应用程序中保存.plist文件的位置

时间:2009-06-04 04:39:36

标签: iphone cocoa-touch plist

我正在开发一个iPhone应用程序,我想在其中使用.plist文件来保存一些配置变量。

在我的xcode中创建.plist文件以及如何访问它?

谢谢,

7 个答案:

答案 0 :(得分:6)

您将放入资源文件夹。然后用这样的东西加载它:

NSString *file = [[NSBundle mainBundle] pathForResource:@"TwitterUsers" ofType:@"plist"];
NSArray *Props = [[NSArray alloc] initWithContentsOfFile:file];

TwitterUsers是plist文件的名称。

如果你的plist文件包含键和值,你可以使第二行成为NSDictionary而不是NSArray。

答案 1 :(得分:6)

要将plist文件存储在Documents目录中,您必须在应用程序中包含plist文件,然后在首次启动时将其复制到Documents目录。

要访问Documents目录中的文件:

NSArray *paths = 
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                    NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 

// <Application Home>/Documents/foo.plist 
NSString *fooPath = 
[documentsPath stringByAppendingPathComponent:@“foo.plist”];

答案 2 :(得分:3)

我建议将它保存在应用程序包的Res​​ources目录中,但您只需将其拖到项目窗口即可。 NSBundle方法pathForResource:ofType:应该为您提供一条路径,您可以将其传递给NSDictionary的{​​{1}}。

编辑:抱歉,完整的代码示例(我以为我已经复制并粘贴了):

dictionaryWithContentsOfFile:

答案 3 :(得分:3)

编辑刚发生在我身上的“配置变量”可能不是一成不变的。如果是这种情况,请忽略这个答案。

我建议您使用NSUserDefaults来存储配置变量,而不是滚动自己的系统。

如果要修改应用程序包中的.plist,则可能会使捆绑包上的签名失效,但不会结束。

如果您必须存储和修改自己的.plist,请将其存储在Documents目录中,该目录也是您的应用程序应存储下载,创建等内容的位置。请参阅{{3} }和File and Data Management

答案 4 :(得分:1)

默认情况下,如果您已将plist包含在项目的任何位置(在Resources或其他情况下),XCode会将其复制到应用程序包中,您可以使用上述pathForResource调用将其复制到该应用程序包中。我只是想提一下,因为你可能更喜欢在资源中没有它的分组......

答案 5 :(得分:0)

你可以找到示例sqlite book .....将silte数据文件保存到目录'Document'中....你会知道prcess

答案 6 :(得分:0)

  1. 为什么会使捆绑包失效?

  2. 资源文件夹中的plist文件是否会像在文档文件夹中的文件一样在iTunes中备份?