Objective c (空)和<;空>;,两者之间有什么区别?

Objective c (空)和<;空>;,两者之间有什么区别?,objective-c,ios,Objective C,Ios,当我尝试显示字典值的值时: NSLog(@"%@",[self.user valueForKeyPath:@"age"]); 第一次,我得到了(null),第二次我得到了 这两个结果之间有什么区别?Thanx提前。当NSLog输出(null)时,这意味着它实际上是在0x0或null中传递的 当它输出时,意味着它被传入[NSNull null] NSNull通常用于默认情况下无法存储nil的数组和其他集合中。因此,使用了一个特殊对象。您应该使用objectForKey:而不是valueForKe

当我尝试显示字典值的值时:

NSLog(@"%@",[self.user valueForKeyPath:@"age"]);
第一次,我得到了
(null)
,第二次我得到了


这两个结果之间有什么区别?Thanx提前。

NSLog
输出
(null)
时,这意味着它实际上是在
0x0
null
中传递的

当它输出
时,意味着它被传入
[NSNull null]


NSNull
通常用于默认情况下无法存储
nil
的数组和其他集合中。因此,使用了一个特殊对象。

您应该使用
objectForKey:
而不是
valueForKey:
(或者更糟糕的是,
valueForKeyPath:
)来访问字典内容!第一个是指定的访问器,而另外两个实际用于KVC