我创建了一个plist,结构如下:
Root - NSDictionary
firstName - NSArray
lastName - NSArray
收到字典后,我不确定如何访问这些数据。当我记录字典的内容时,就像这样
NSDictionary *presetsDict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
self.presetsDictionary = presetsDict;
for (NSString *key in self.presetsDictionary) {
NSLog(@"key:%@, object:%@", key, [self.presetsDictionary objectForKey:key]);
我得到了
key:Root, object: {
lastName = (my lastName array, , , , ) // filled with the contents of my plist
firstName - (my firstName array, , , ,)
我假设我能够使用
之类的东西获取lastName数组和firstName数组NSArray *fArray = [self.presetsDictionary objectForKey:@"firstName"];
但是返回零。如何在plist中访问我的NSDictionary?感谢。
答案 0 :(得分:4)
您的顶级对象看起来像是一个字典,其中包含一个名为 Root 的键,其中包含您的核心字典(其中 firstName 和 lastName 密钥直播)。因此,要访问它,您必须首先浏览 Root 键入的对象。您可以获取该字典然后访问其密钥,或使用包含 Root 密钥的密钥路径:
// Accessing through the Root entry
NSDictionary* rootDict = [[self presetsDictionary] objectForKey:@"Root"];
NSArray* firstNames = [rootDict objectForKey:@"firstName"];
NSArray* lastNames = [rootDict objectForKey:@"lastName"];
// Accessing using the keypath with Root
NSArray* firstNames = [[self presetsDictionary] valueForKeyPath:@"Root.firstName"];
NSArray* lastNames = [[self presetsDictionary] valueForKeyPath:@"Root.lastName"];
答案 1 :(得分:0)
看起来您需要执行以下操作: NSArray * fArray = [self.presetsDictionary valueForKeyPath:@“Root.firstName”];
换句话说,看起来你有嵌套字典,基本字典中唯一的条目是一个Key,Root,其他数据是相关的值。