如何在iOS中添加和获取.plist中的值

时间:2010-10-13 08:26:57

标签: ios objective-c ios4 plist

我正在实施基于Web服务的应用程序。在那里我需要在.plist中添加一个字符串作为属性,我需要在代码中随时获取.plist中的值。

5 个答案:

答案 0 :(得分:36)

以下是代码示例:

NSString *path = [[NSBundle mainBundle] pathForResource: @"YourPLIST" ofType: @"plist"]; 
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile: path];
id obj = [dict objectForKey: @"YourKey"];

答案 1 :(得分:18)

NSBundle* mainBundle = [NSBundle mainBundle]; 

// Reads the value of the custom key I added to the Info.plist
NSString *value = [mainBundle objectForInfoDictionaryKey:@"key"];

//Log the value
NSLog(@"Value = %@", value);

// Get the value for the "Bundle version" from the Info.plist
[mainBundle objectForInfoDictionaryKey:@"CFBundleVersion"];

// Get the bundle identifier
[mainBundle bundleIdentifier];

答案 2 :(得分:6)

NSURL *url = [[NSBundle mainBundle] URLForResource:@"YOURPLIST" withExtension:@"plist"];
NSArray *playDictionariesArray = [[NSArray alloc ] initWithContentsOfURL:url];

NSLog(@"Here is the Dict %@",playDictionariesArray);

或者您也可以使用以下

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Sample.plist"];

答案 3 :(得分:2)

从plist获取非常简单。

NSString *path = [[NSBundle mainBundle] pathForResource:@"SaveTags" ofType:@"plist"];
if (path) {
    NSDictionary *root = [NSDictionary dictionaryWithContentsOfFile:path];
}

如果你想为plist添加一些东西,也许你可以在这里找到答案: How to write data in plist?

但如果您只想在应用中保存一些消息,NSUserDefaults是更好的方式。

答案 4 :(得分:0)

你不能这样做。任何Bundle,它是iOS或Mac OS只读,你只能读取它,你不能创建文件,写或对包中的文件做任何事情。这是苹果安全功能的一部分。您可以使用NSDocumentsDirectory来编写和阅读应用程序所需的内容