NSMutable Словарь добавления объектов - PullRequest
28 голосов
/ 13 июля 2009

Есть ли более эффективный способ добавления объектов в словарь NSMutable, чем простая итерация?

Пример:

// 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"];

Просто любопытно, я уверен, что так оно и должно быть.

Ответы [ 4 ]

20 голосов
/ 13 июля 2009
NSDictionary *entry = [NSDictionary dictionaryWithObjectsAndKeys:
  [NSNumber numberWithDouble:acceleration.x], @"x",
  [NSNumber numberWithDouble:acceleration.y], @"y",
  [NSNumber numberWithDouble:acceleration.z], @"z",
  [NSDate date], @"date", 
  nil];
15 голосов
/ 13 июля 2009

Если у вас есть все объекты и ключи заранее, вы можете инициализировать их, используя NSDictionary's:

dictionaryWithObjects:forKeys:

Конечно, это даст вам неизменный словарь, а не изменяемый. Это зависит от того, какое использование вам нужно, вы можете получить изменяемую копию из NSDictionary, но в таком случае проще использовать исходный код:

NSDictionary * dic = [NSDictionary dictionaryWith....];
NSMutableDictionary * md = [dic mutableCopy];
... use md ...
[md release];
8 голосов
/ 08 июля 2013

Позвольте мне добавить информацию людям, которые начинают.

Можно создать NSDictionary с более дружественным синтаксисом с Objective-C литералов :

NSDictionary *dict = @{ 
    key1 : object1, 
    key2 : object2, 
    key3 : object3 };
0 голосов
/ 22 июля 2016
NSMutableDictionary *example = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@5,@"burgers",@3, @"milkShakes",nil];

Объекты располагаются перед ключами.

...