获取plist的内容

时间:2011-08-02 13:20:50

标签: objective-c plist nsdictionary

如何获取此plist的内容?

我对不同的元素以及如何访问它们感到有点困惑。

enter image description here

如何访问这些词典和词典中的词典?

如果我想首先复制这些数据怎么样呢?它会不会一直提高性能,而不是总是从plist中读取?

如何通过结构级别将所有这些数据存入我的应用程序?

谢谢

4 个答案:

答案 0 :(得分:10)

读取属性列表的最简单方法是在NSDictionary 上使用便捷方法(如果您的根元素是数组,则为NSArray,如下所示:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"FileName" 
                                                     ofType:@"plist"];
NSDictionary* plist = [NSDictionary dictionaryWithContentsOfFile:filePath];

从那里plist文件只是一个普通的字典。使用objectForKey:等获取值。为了更快地访问深层子节点,您可以使用valueForKeyPath:,例如:

NSString* name = [plist valueForKeyPath:@"mainDictionary.name"];

对于plist文件的更复杂操作,您应该使用具有多个类方法的NSPropertyListSerialization,以便更精细地访问读取和写入属性列表文件。

答案 1 :(得分:1)

    use this :
    NSDictionary *dic1 = [[NSDictionary alloc] initWithContentofFile:yourFilePathhere];

// return main dictionary
    NSDictionary *dic2 = [dic1 objectForKey:mainDictionary];

答案 2 :(得分:0)

你应该查看NSPropertyListSerialization class,这使解析plists相对简单。

以下是一些示例代码:http://iphoneincubator.com/blog/tag/nspropertylistserialization

答案 3 :(得分:0)

Swift Code

let filePath:String = NSBundle.mainBundle().pathForResource("infoList_English", ofType: "plist")!
let postDictionary : NSDictionary = NSDictionary(contentsOfFile: filePath)!
print(postDictionary)