【问题标题】:NSNumber with 0 convert to NSInteger/NSUInteger become nilNSNumber 为 0 转换为 NSInteger/NSUInteger 变为 nil
【发布时间】:2015-06-25 09:11:47
【问题描述】:

为什么 0 的 NSNumber 不能转换为正确的 NSInteger/NSUInteger 值?

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

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

在控制台中:

(lldb) po [@0 intValue]
0

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

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

更新:

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

【问题讨论】:

    标签: ios nsnumber nsinteger nsuinteger


    【解决方案1】:

    使用 p 而不是 po

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

    【讨论】:

    • 感谢您的回复。清除我自己,我将 @0 分配给 NSUInteger 变量,结果是 nil。有什么建议不要使用 NSInteger/NSUInteger?
    • [@0 integerValue] 不是对象。您应该使用 p 值而不是 po 对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多