2014-01-15 44 views
0

我在阅读plist时遇到了问题,我似乎无法确定。iOS - 从阅读plist的问题

我的plist名单看起来是这样的(注意:我已经简化它的例子缘故):

enter image description here

然后我读这样的代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"ContactDetails" ofType:@"plist"]; 
NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; 
NSArray* allmyKeys = [myDictionary allKeysForObject:@"Name1"]; 

任何想法 - 我一直面临的问题是allmyKeys显示为包含0个对象。在调试myDictionary正确填充,所以不知道为什么它不起作用。

非常感谢

+0

对不起它的名称1访问词典 - 我刚刚写了错误的描述 - 已经纠正了。 – userMod2

+0

你想找回什么?如果你想为'@“Name1”'的所有键('@“Address1”','@“Address2”'等),它将是'[dictionary [@“Name1”] allKeys]'。或者,如果您正在查找与“@”Name1“'键关联的整个字典对象,它将是'dictionary [@”Name1“]'。 '[myDictionary allKeysForObject:@“Name1”]'查找匹配'@“Name1”'的值,而不是匹配'@“Name1”'的键。 – Rob

回答

1

问题是这一行:

NSArray* allmyKeys = [myDictionary allKeysForObject:@"Name1"]; 

@"Name1"是在你的字典中关键,而不是一个值。即使它是一个值,字符串@"Name1"是与myDictionary中具有相同值的字符串不同的对象,因此此调用不会达到您的期望值。

你可能想通过做

NSDictionary *userDetails = myDictionary[@"Name1"];