2011-07-01 90 views
0

裏的數組的長度我敢肯定,這是一個非常明顯的問題,但我不會跟任何地方獲取和我一直在努力,現在半小時左右。獲取一個辭典鍵

我有一個NSMutableDictionary具有鍵&值,很明顯。每個密鑰都存儲一組對象。我需要做的是在鍵中找到一個特定的數組,並獲得數組的列表。問題在於我不知道密鑰的價值,我只知道它是索引。 (EG:我知道我需要在第二個鍵中找到數組)。

我幾乎可以肯定這是一件非常簡單的事情,但它逃避了我,我一直在做Obj-C一段時間,所以還沒有完全在家用它呢!

謝謝,

傑克。

+0

由於第二個密鑰沒有明確定義,您需要其他類型的容器 – Mark

回答

1

使用allKeys:訪問您的字典的鍵。

- (NSArray *)allKeys 

用法如下。

NSArray* dictAllKeys = [dict allKeys]; 
    if([dictAllKeys count] > 2) 
    { 
     NSArray* myArrayInDict = [dict objectForKey:[dictAllKeys objectAtIndex:1]]; 
     // get the length of array in dict at 2nd key 
     int length = [myArrayInDict count]; 
    } 
+1

來自文檔:allKeys 返回包含字典密鑰的新數組。 - (NSArray的*)allKeys 返回值 含有字典的鍵,或者一個空數組如果字典沒有條目的新陣列。 討論 未定義數組中元素的順序。 – Pierre

+0

@皮埃爾:是的,他們沒有指定的順序在文檔中,但至少我們可以檢查並看到'allKeys'陣列鍵.. – Jhaliya

+0

這個工作的順序,謝謝:)現在我已經破解了,非常感謝您的幫助。 –

0

如果添加了另一個鍵/值對,則該訂單可能會更改,它是一個NSMutableDictionary。最好不要依賴NSDictionaryNSSet的順序。

建議:可以使用另一個容器來提供排序,如NSMutableArray或使用字典的值數組找到該項目,或許使用NSPredicate