为什么不能将NSNumber 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) $0 = 0

最佳答案

使用p而非po

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

关于ios - NSNumber与0转换为NSInteger/NSUInteger变为nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31045994/

10-12 21:29