Создание NSDictionary - PullRequest
       19

Создание NSDictionary

33 голосов
/ 10 июля 2009

В следующем коде первая инструкция журнала показывает десятичное число, как и ожидалось, а вторая записывает NULL. Что я делаю не так?

NSDictionary *entry = [[NSDictionary alloc] initWithObjectsAndKeys:
  @"x", [NSNumber numberWithDouble:acceleration.x],
  @"y", [NSNumber numberWithDouble:acceleration.y],
  @"z", [NSNumber numberWithDouble:acceleration.z],
  @"date", [NSDate date],
  nil];
NSLog([NSString stringWithFormat:@"%@", [NSNumber numberWithDouble:acceleration.x]]);
NSLog([NSString stringWithFormat:@"%@", [entry objectForKey:@"x"]]);

Ответы [ 3 ]

104 голосов
/ 10 июля 2009

Вы меняете порядок, в котором вы вставляете объекты и ключ: вам нужно сначала вставить объект, а затем ключ, как показано в следующем примере.

NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
19 голосов
/ 02 июня 2015

new Objective-c поддерживает этот новый синтаксис для статической инициализации.

@{key:value}

Например:

NSDictionary* dict = @{@"x":@(acceleration.x), @"y":@(acceleration.y), @"z":@(acceleration.z), @"date":[NSDate date]};
6 голосов
/ 13 ноября 2013

NSDictionary Синтаксис:

NSDictionary *dictionaryName = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@value2",@"key2", nil];

Пример:

NSDictionary *importantCapitals = [NSDictionary dictionaryWithObjectsAndKeys:
@"NewDelhi",@"India",@"Tokyo",@"Japan",@"London",@"UnitedKingdom", nil];
NSLog(@"%@", importantCapitals);

Вывод выглядит как,

{Индия = Нью-Дели; Япония = Токио; Великобритания = Лондон; }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...