2014-01-15 42 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"];