Странное выражение выделения NSNumber - PullRequest
0 голосов
/ 23 апреля 2020

Рассмотрим следующие NSNumber экземпляры:

NSNumber *b1 = @((long)(-61));
NSNumber *b2 = @((long)(-62));

NSLog(@"%@", b1);
NSLog(@"%@", b2);

«Представление переменных» в «Области отладки» показывает любопытные значения:

enter image description here

Кто-нибудь имеет представление об этой информации отладчика?

1 Ответ

0 голосов
/ 03 мая 2020

0xffffffffffffffc3 - шестнадцатеричное представление -61. 0x00ffffffffffffc3 - это шестнадцатеричное представление 72057594037927875.

. «Просмотр переменных» в «Области отладки» просто имеет проблемы с корректным представлением отрицательных long значений NSNumber.

enter image description here

Ирония c заключается в том, что если вы используете unsigned long для базового значения для NSNumber (см. value4 / b4 на снимке экрана выше), представление переменных теперь будет отображаться как -61.

Но это просто ошибка при отображении экземпляров NSNumber в «Представлении переменных». Фактические значения NSNumber в порядке.

...