Как я могу использовать целочисленное значение как «ключ» для установки значения в NSMutableDictionary? - PullRequest
41 голосов
/ 27 января 2011

Как я могу использовать целочисленное значение в качестве «ключа» для установки значения с плавающей запятой в NSMutableDictionary?

Ответы [ 3 ]

80 голосов
/ 27 января 2011

Поскольку NSDictionarys предназначены только для работы с объектами, простой способ сделать это состоит в том, чтобы обернуть целое и поместить в объект NSNumber . Например:

NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc] init];
[testDictionary setObject:[NSNumber numberWithFloat:1.23f]
                   forKey:[NSNumber numberWithInt:1]];
NSLog(@"Test dictionary: %@", testDictionary);

[testDictionary release];

Чтобы извлечь соответствующее значение, просто используйте соответствующий метод intValue, floatValue и т. Д. Из класса NSNumber.

8 голосов
/ 27 января 2011

Вы можете использовать NSMapTable , поскольку он напрямую поддерживает целочисленные ключи и / или значения.Нет необходимости блокировать / распаковывать через NSNumber, но его также немного сложнее настроить и использовать.

2 голосов
/ 27 января 2011

Это должен быть объект, поэтому используйте [NSNumber numberWithInt:myInteger].

Затем найдите его с помощью -integerValue

...