简体   繁体   English

NSNumber与0转换为NSInteger / NSUInteger变为nil

[英]NSNumber with 0 convert to NSInteger/NSUInteger become nil

Why NSNumber of 0 cannot be converted to correct NSInteger/NSUInteger value? 为什么不能将NSNumber 0转换为正确的NSInteger / NSUInteger值?

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

Why is a in the above line of code nil. 为什么上面的代码行中的a是nil。 Shouldn't it be equal to 0 ? 它不应该等于0吗?

In the console: 在控制台中:

(lldb) po [@0 intValue]
0

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

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

Update: 更新:

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

Use p not po 使用p而不是po

(lldb) p [@0 integerValue]
(NSInteger) $1 = 0
(lldb) p [@0 intValue]
(int) $2 = 0
(lldb) p [@0 unsignedIntegerValue]
(NSUInteger) $3 = 0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM