2009-07-12 78 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]; 

的对象是在按键之前。

相关问题