2013-08-19 56 views
2

我有一個看起來像這樣的plist。我經常訪問使用下面的代碼行:iOS訪問詞典

enter image description here

NSMutableDictionary *plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 
CGFloat redFloat = (CGFloat)[[plistDict objectForKey:@"red"] floatValue]; 

但是因爲它是嵌套 - 我該如何訪問BackgroundColour紅色?

謝謝。

回答

3

絕對:讀plist成一本字典爲您提供了詞典的詞典,所以你需要訪問BackgroundColour第一:

CGFloat redFloat = (CGFloat)[[[plistDict objectForKey:@"BackgroundColour"] objectForKey:@"red"] floatValue]; 

的新語法,您可以用更少的字符寫:

CGFloat redFloat = (CGFloat)[plistDict[@"BackgroundColour"][@"red"] floatValue]; 
1

您也可以使用valueForKeyPath:快捷鍵:

CGFloat redFloat = (CGFloat)[[plistDict valueForKeyPath:@"BackgroundColour.red"] floatValue]; 
0
CGFloat redFloat = [[[plistDict objectForKey:@"BackgroundColour"] objectForKey:@"red"] floatValue]; 
+0

即使在修復「@」BackgroundColour「」鍵的名稱之後,這將是無效的轉換,因爲「red」是一個字符串。 – dasblinkenlight