【问题标题】:NSDictionary with integer as number以整数为数字的 NSDictionary
【发布时间】:2011-05-20 09:15:10
【问题描述】:

我有一个具有以下布局的 NSDictionary:

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

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

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

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

    【讨论】:

    • NSMapTable 和 NSHashTable do 允许键是整数。但是,我不知道它们是否适用于您所针对的操作系统。
    【解决方案2】:

    看起来您正在尝试使用整数作为 NSDictionary 中的键。 NSArray 是正确的,NSDictionary 实际上需要一个适当的对象作为键。

    在这种特殊情况下,您可能会更成功地将数据输入NSArray,并通过以下方式访问它:

    id *someData = [my_array objectAtIndex:1];
    

    【讨论】:

    • 它实际上是一个字典,因为我将 ID 从数据库映射到其他信息。不过感谢您的帮助!
    猜你喜欢
    • 2016-02-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多