Existe-t-il un moyen plus efficace d’ajouter des objets à un NSMutableDictionary qu’une simple itération?
Exemple:
// 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"];
Juste curieux, je suis sûr que c'est la façon dont cela doit être fait.
Si vous avez au préalable tous les objets et les clés, vous pouvez l'initialiser à l'aide de NSDictionary:
dictionaryWithObjects:forKeys:
Bien sûr, cela vous donnera un dictionnaire immuable non modifiable. Cela dépend de votre utilisation et de celle dont vous avez besoin. Vous pouvez obtenir une copie mutable de NSDictionary, mais il semble plus simple d’utiliser votre code original dans ce cas:
NSDictionary * dic = [NSDictionary dictionaryWith....];
NSMutableDictionary * md = [dic mutableCopy];
... use md ...
[md release];
NSDictionary *entry = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:acceleration.x], @"x",
[NSNumber numberWithDouble:acceleration.y], @"y",
[NSNumber numberWithDouble:acceleration.z], @"z",
[NSDate date], @"date",
nil];
Permettez-moi d'ajouter des informations aux personnes qui commencent.
Il est possible de créer une NSDictionary
avec une syntaxe plus conviviale avec objective-c literals :
NSDictionary *dict = @{
key1 : object1,
key2 : object2,
key3 : object3 };
NSMutableDictionary *example = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@5,@"burgers",@3, @"milkShakes",nil];
Les objets viennent avant les clés.