请考虑以下几点 NSNumber 实例。
NSNumber
NSNumber *b1 = @((long)(-61)); NSNumber *b2 = @((long)(-62)); NSLog(@"%@", b1); NSLog(@"%@", b2);
在 "调试区 "的 "变量视图 "中显示了奇怪的数值。
有人知道这个调试器的信息吗?
0xffffffffffffffc3 是十六进制表示的 -61. 0x00ffffffffffffc3 是十六进制的代表 72057594037927875.
0xffffffffffffffc3
-61
0x00ffffffffffffc3
72057594037927875
在 "调试区 "的 "变量视图 "中,正确地表示负值的问题。long 的值 NSNumber.
long
具有讽刺意味的是,如果你使用一个 unsigned long 的基本价值。NSNumber (见 value4b4 在上面的屏幕快照中),变量视图现在将显示为 -61.
unsigned long
value4
b4
但是,这只是一个错误,在显示的 NSNumber 变量视图 "中的实例。实际的 NSNumber 值都不错。