5

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

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

谢谢你,

4

7 回答 7

6

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

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

其中 TwitterUsers 是您的 plist 文件的名称。

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

于 2009-06-04T04:44:00.680 回答
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”];
于 2009-06-04T10:33:37.603 回答
3

我建议将其保留在应用程序包的 Resources 目录中,但您可以将其拖到项目窗口中。该NSBundle方法pathForResource:ofType:应该为您提供一条路径,您可以将其传递给NSDictionary's dictionaryWithContentsOfFile:

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

NSString *path = [[NSBundle mainBundle] pathForResource:@"MyConfig" ofType:@"plist"];
NSDictionary *myConfig = [NSDictionary dictionaryWithContentsOfFile:path];
于 2009-06-04T04:44:01.400 回答
3

编辑我刚刚想到“配置变量”可能不是一成不变的。如果是这种情况,请忽略此答案。

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

如果你.plist在你的应用程序包中修改一个,你将冒着使包上的签名无效的风险,同时也不会很好地结束。

如果您必须存储和修改自己的.plist,请将其存储在Documents目录中,这也是您的应用程序应该存储它下载、创建等的任何内容的地方。请参阅文件和数据管理NSFileManager

于 2009-06-04T05:13:00.677 回答
1

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

于 2009-06-04T23:20:59.503 回答
0

您可以找到示例 sqlite book ..... silte 数据文件被保存到目录“文档”中 .... 您将知道过程

于 2009-06-04T05:21:24.910 回答
0
  1. 为什么它会使捆绑包无效?

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

于 2009-09-23T05:35:17.933 回答