NSDictionary,整数为数字

时间:2010-12-05 00:05:06

标签: iphone objective-c

我有一个NSDictionary,其布局如下:

{
  1:{
    ... some data ...
  }
  ...
}

我有一个整数值为1的NSNumber对象,但是当我这样做时 [my_dict objectForKey:my_number]它返回null。

如果我尝试通过[my dict objectForKey:[my_number intValue]]将NSNumber转换为整数,我会收到警告,当程序到达代码的那一部分时程序会崩溃。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:6)

NSDictionaryNSMutableDictionary中的键必须是对象,例如NSNumber。它们不能是原始数据类型,如int

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html

答案 1 :(得分:3)

您似乎正在尝试使用整数作为NSDictionary中的密钥。使用NSArray时这是正确的,NSDictionary实际上需要一个合适的对象作为键。

在这种特殊情况下,您可能会获得更多成功,将这些数据提供给NSArray,然后通过以下方式访问它:

id *someData = [my_array objectAtIndex:1];