NSNumber with 0 convert to NSInteger/NSUInteger become nil

NSNumber with 0 convert to NSInteger/NSUInteger become nil

为什么 NSNumber of 0 无法转换为正确的 NSInteger/NSUInteger 值?

NSUInteger a = [@0 unsignedIntegerValue]; // a become nil

为什么上面那行代码中的a是nil。不应该等于0吗?

在控制台中:

(lldb) po [@0 intValue]
0

(lldb) po [@0 integerValue]
<nil>

(lldb) po [@0 unsignedIntegerValue]
<nil>

更新:

(lldb) p [@0 unsignedIntegerValue]
(NSUInteger) [=13=] = 0

使用 p 而不是 po

(lldb) p [@0 integerValue]
(NSInteger)  = 0
(lldb) p [@0 intValue]
(int)  = 0
(lldb) p [@0 unsignedIntegerValue]
(NSUInteger)  = 0