cocoa objective-c带有整数对象的NSDictionary

jam*_*mes 2 cocoa cocoa-touch objective-c

为什么dict2dict1显示没有这样的警告时显示关于其对象不是指针的警告?

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

尔格.

NSDictionary *dict1 = [NSDictionary dictionaryWithObject:0 forKey:TAG_KEY];
NSDictionary *dict2 = [NSDictionary dictionaryWithObject:1 forKey:TAG_KEY];
Run Code Online (Sandbox Code Playgroud)

Chu*_*uck 5

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

#define Nil 0           /* id of Nil class */
#define nil 0           /* id of Nil instance */
Run Code Online (Sandbox Code Playgroud)