Как я понимаю, в Objective-C вы можете помещать Объекты только в словари. Так что, если бы я должен был создать словарь, он должен был бы иметь все объекты. Это означает, что я должен поместить свои int как NSNumber, верно?
СОО ...
NSNumber *testNum = [NSNumber numberWithInt:varMoney];
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:@"OMG, Object 1!!!!" forKey:@"1"];
[dictionary setObject:@"Number two!" forKey:@"2"];
[dictionary setObject:testNum forKey:@"3"];
NSNumber *retrieved = [dictionary objectForKey:@"3"];
int newVarMoney = [retrieved intValue];
Где varMoney - это int, который был объявлен ранее. У меня вопрос, есть ли лучший способ сохранить "int" в словаре, чем положить его в NSNumber?
Спасибо!
Редактировать: 04/25/13
Прошло много времени с тех пор, как я задавал этот вопрос. Для людей, спотыкающихся об этом в будущем, есть более простые способы сделать это с Apple LLVM Compiler 4.0, который в Xcode уже был по умолчанию. (ARC)
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:@1337 forKey:@"1"];
Вот и все, используйте синтаксис @ 1337 для быстрого создания объектов NSNumber. Работает с переменными, поэтому мой выше может стать:
[dictionary setObject:@(varMoney) forKey:@"3"];
или
dictionary[@"mykey"] = @1337;
Simpler.