NSMutable Dictionary添加对象

djt*_*000 28 objective-c nsmutabledictionary

是否有更有效的方法将对象添加到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"];
Run Code Online (Sandbox Code Playgroud)

只是好奇,我确信这是必须要做的.

And*_*son 20

NSDictionary *entry = [NSDictionary dictionaryWithObjectsAndKeys:
  [NSNumber numberWithDouble:acceleration.x], @"x",
  [NSNumber numberWithDouble:acceleration.y], @"y",
  [NSNumber numberWithDouble:acceleration.z], @"z",
  [NSDate date], @"date", 
  nil];
Run Code Online (Sandbox Code Playgroud)


ste*_*anB 15

如果您事先拥有所有对象和键,则可以使用NSDictionary来初始化它:

dictionaryWithObjects:forKeys:
Run Code Online (Sandbox Code Playgroud)

当然这会给你不可变的字典不可变.这取决于你使用哪一个,你可以从NSDictionary获得一个可变副本,但在这种情况下使用原始代码似乎更容易:

NSDictionary * dic = [NSDictionary dictionaryWith....];
NSMutableDictionary * md = [dic mutableCopy];
... use md ...
[md release];
Run Code Online (Sandbox Code Playgroud)


Tia*_*ida 8

请允许我向正在开始的人添加一些信息.

可以NSDictionary使用objective-c文字创建一个更友好的语法:

NSDictionary *dict = @{ 
    key1 : object1, 
    key2 : object2, 
    key3 : object3 };
Run Code Online (Sandbox Code Playgroud)

  • @vvMINOvv没有必要:).与NSArrays文字相同:) (2认同)