Objective c 具有整数对象的cocoa objective-NSC字典

Objective c 具有整数对象的cocoa objective-NSC字典,objective-c,cocoa,cocoa-touch,Objective C,Cocoa,Cocoa Touch,当dict1没有显示这样的警告时,为什么dict2会显示关于其对象不是指针的警告 两个都不应该显示这个警告吗?两者都是整数 伯格 显然,int不是对象,但指针上下文中的0被解释为nil/NULL。事实上,这正是nil的定义。从objc.h: #define Nil 0 /* id of Nil class */ #define nil 0 /* id of Nil instance */ 如果您想在字典中输入整数,可以使用classNSNumber。这并

dict1
没有显示这样的警告时,为什么
dict2
会显示关于其对象不是指针的警告

两个都不应该显示这个警告吗?两者都是整数

伯格


显然,int不是对象,但指针上下文中的0被解释为nil/NULL。事实上,这正是nil的定义。从objc.h:

#define Nil 0           /* id of Nil class */
#define nil 0           /* id of Nil instance */

如果您想在字典中输入整数,可以使用class
NSNumber

这并不能回答问题,先生@宾尼布:查克已经充分回答了这个问题。我只是指出你们所做的是非常错误的——整数不属于NSDictionary。NSDictionary将尝试对它们执行对象操作—例如,保留/释放。这会引起很多悲伤。不过,有一个解决方法-整数可以包装在名为NSNumber的对象类型中。
#define Nil 0           /* id of Nil class */
#define nil 0           /* id of Nil instance */