我在我的字典中有以下鍵值,我試圖循環遍歷每一行並記錄每個項目,這是可能的使用NSDictionary?Objective C - 使用NSDictionary?
請注意,我的鑰匙不是唯一
Key Value
A 1
B 2
B 3
B 4
C 5
C 6
C 7
D 8
我在我的字典中有以下鍵值,我試圖循環遍歷每一行並記錄每個項目,這是可能的使用NSDictionary?Objective C - 使用NSDictionary?
請注意,我的鑰匙不是唯一
Key Value
A 1
B 2
B 3
B 4
C 5
C 6
C 7
D 8
這可能是壞的方式做到這一點,但如果你的字典是不是太大了,你可以試試:
Key Value
1 Array with "A" and "1"
2 Array with "B" and "2"
3 Array with "B" and "3"
//and so on
然後你就可以輕鬆地遍歷它並記錄你需要(在這種情況下[theArray objectAtIndex:1]
)什麼。
希望它可以幫助
這正是我最終做的,NSDictionaries的數組。 – aryaxt 2012-03-07 01:06:18
在NSDictionary
你的鑰匙必須是唯一的。從docs:
字典中的鍵值對稱爲條目。每個條目 由表示該鍵的一個對象和作爲該鍵的值的第二對象組成。在字典中,密鑰是唯一的。 也就是說,單個字典中沒有兩個密鑰相等(由isEqual :)確定爲 。
一旦你有一個NSDicitonary,您可以用獲得通過按鍵訪問和循環:
- (NSArray *)allKeys
編輯:
獲得類似功能,請here
這聽起來像它是你正在尋找 乾杯什麼,
這並沒有幫助,因爲鍵不是唯一的,所以每次我詢問鍵的值時,都會返回第一個鍵。 – aryaxt 2012-03-06 21:54:27
對不起,但NSDicitonarys沒有存儲重複密鑰的方法。我正在尋找一個不會爲你使用字典的解決方案。 – 2012-03-06 21:55:58
而且它總是會做同樣的工作 – 2012-03-06 21:56:26
在一個詞典中,鍵是獨一無二的。
你必須有每個鍵一個值。
如果添加了已經存在於一個NSMutableDictionary關鍵,字典本身只會用新值覆蓋當前鍵的值,而舊的價值將不存在任何進一步的
但是,如果你想通過字典環,看看這篇文章:
我注意到你的第二個值是相鄰的號碼 - 所以,你確定你不是說要使用NSArray
(一個有序列表)含有「A」,「B」,「 B「,」B「,」C「,」C「,」C「,」D「?然後循環:
NSArray* array = [NSArray arrayWithObjects:@"A", @"B", @"B", @"B", @"C", @"C", @"C", @"D", nil];
for (NSUInteger i = 0; i < [array count]; i++)
{
NSUInteger value = i+1;
NSString* key = [array objectAtIndex:i];
//Your code here.
}
您的密鑰必須是唯一的,否則您將最終更改由密鑰存儲的值,而不是創建新密鑰。 – 2012-03-06 21:50:54
我不能擁有唯一的密鑰,這就是我的數據結構。是否有相當於哈希映射或類似的東西我可以使用? – aryaxt 2012-03-06 21:53:04
散列圖不能有重複鍵。 – 2012-03-06 21:54:41