2013-09-30 63 views
0

我想在ios中的一個鍵下添加兩個值我怎麼可以這樣做。單鍵添加兩個objcet NSMutableDictionary

我想這

[indexDic setObject:[NSNumber numberWithInt:num] forKey:@"first"]; 

[indexDic setObject:[NSNumber numberWithInt:sender.tag] forKey:@"first"]; 

,但只顯示第二sender.tag值將替換第一個值,我怎麼可以在第一項中添加這兩種價值。

幫我解決這個問題。

在此先感謝。

回答

1
NSDictionary *values = [NSDictionary dictionaryWithObjectsAndKeys: 
         [NSNumber numberWithInt:num], @"FirstValue", 
         [NSNumber numberWithInt:sender.tag], @"TagValue", 
         nil]; 
    [indexDic setObject:values forKey:@"first"]; 

創建這些值的字典並將其添加到您的主字典中,這意味着字典內的字典。所以你的許多值將被存儲在Key值的一個引擎下。

在檢索時間,你可以獲取這個樣子,

NSInteger firstValue = [[[indexDic objectForKey: @"first"] objectForKey:@"FirstValue"] intValue]; 
    NSInteger tagValue = [[[indexDic objectForKey: @"first"] objectForKey:@"TagValue"] intValue]; 
+0

這是我的工作.. – Jitendra

1

您可以添加對象的數組的關鍵。

NSArray *array = [NSArray arrayWithObjects:[NSNumber numberWithInt:num], 
          [NSNumber numberWithInt:sender.tag],nil]; 
[indexDic setObject:array forKey:@"first"]; 

雖然按照與插入數組中相同的順序依次檢索要訪問的值,

希望有幫助!

+2

保持數組中的多個值不是更好的優化解決方案。當你開始檢索數組中的值時,你可能需要迭代數組。這令人難以置信地增加了執行的時間成本。如果你將Heep放在Heep中,它會減少你的執行時間。使用字典內的字典,您可以獲取確切的值,而無需迭代並在檢索時寫入多行代碼。 – Tirth

+0

對於大數據集是正確的,但在這裏,OP知道他只有兩個值。只有他必須記住的是數據在數組中的位置。這仍然是O(1)取,不需要迭代。 – Amar

相關問題