2013-09-26 3 views
1

Насколько я знаю, поле «тег» в UIView является целым числом. Почему у одного из моих UIButtons есть значение «nil» в его теге?UIButton tag is no

(lldb) po [button_one tag] 
nil 

Я установил тег 0 в конструкторе, но по-прежнему возвращает тег nil в коде.

ответ

12

po означает «объект печати». Целое число не является объектом. И nil будет равно целому значению нуля.

Итак, в lldb вы должны использовать p для печати целочисленного значения. И это, вероятно, правильно.

+0

но тег NSInteger! – AVEbrahimi

+5

Просто потому, что имя начинается с 'NS', не делает его объектом. Посмотрите на определение ('typedef int NSInteger;'). – Wain

4

Мой вывод немного отличается, но точка заключается в попытке печати объекта по целому числу (как говорит Уэйн), приводит к нулю, если целое число равно 0 и ошибка, если она отлична от нуля. (Но в этом случае lldb еще дает значение р (INT))

(lldb) po 0 
$0 = 0 <nil> 
(lldb) po nil 
$1 = 0x00000000 <nil> 
(lldb) po button.tag 
$2 = 0 <nil> 
(lldb) p (int)button.tag 
(int) $3 = 0 

Установите метку 1

(lldb) po button.tag 
$4 = 1 [no Objective-C description available] 
(lldb) p (int)button.tag 
(int) $5 = 1