2009-07-12 42 views
28

有沒有比簡單的迭代更有效的方式來添加對象到NSMutable Dictionary?NSMutable Dictionary添加對象

例子:

// Create the dictionary 

NSMutableDictionary *myMutableDictionary = [NSMutableDictionary dictionary];  

// Add the entries 

[myMutableDictionary setObject:@"Stack Overflow" forKey:@"http://stackoverflow.com"]; 
[myMutableDictionary setObject:@"SlashDotOrg" forKey:@"http://www.slashdot.org"]; 
[myMutableDictionary setObject:@"Oracle" forKey:@"http://www.oracle.com"]; 

只是好奇,我敢肯定,這是必須做的方式。

回答

15

如果你擁有所有的對象和組鍵,你可以使用NSDictionary中的初始化:

dictionaryWithObjects:forKeys: 

當然,這將給你永恆不變的字典不可變。這取決於你的使用,你需要哪一種,你可以從NSDictionary中獲得一個可變副本,但它似乎更容易只是爲了用你原來的代碼在這種情況下:

NSDictionary * dic = [NSDictionary dictionaryWith....]; 
NSMutableDictionary * md = [dic mutableCopy]; 
... use md ... 
[md release]; 
+0

謝謝你的第二個意見。我只是想確定我沒有錯過任何東西,看看有沒有更高效/更優雅的東西。 – djt9000 2009-07-13 01:19:52

+0

我也在尋找一個選項來初始化NSMutableDictionary的對象和鍵,就像你可以爲NSDictionary做的一樣,但是我找不到任何東西...... – stefanB 2009-07-13 01:42:02

20
NSDictionary *entry = [NSDictionary dictionaryWithObjectsAndKeys: 
    [NSNumber numberWithDouble:acceleration.x], @"x", 
    [NSNumber numberWithDouble:acceleration.y], @"y", 
    [NSNumber numberWithDouble:acceleration.z], @"z", 
    [NSDate date], @"date", 
    nil]; 
+0

幫助我ty :) – grilix 2010-10-08 18:47:42

8

請允許我補充一些信息的人即將開始。

它可以創建一個更友好的語法NSDictionaryobjective-c literals

NSDictionary *dict = @{ 
    key1 : object1, 
    key2 : object2, 
    key3 : object3 }; 
0
NSMutableDictionary *example = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@5,@"burgers",@3, @"milkShakes",nil]; 

的對象是在按鍵之前。

相關問題