2013-09-26 32 views
1

据我所知,UIView中的“标记”字段是整数。 为什么我的一个UIButton在它的标签中有“无”值?UIButton标记为零

(lldb) po [button_one tag] 
nil 

我在设计器中设置了标签0,但仍然返回代码中的nil标签。

回答

12

po表示'打印对象'。整数不是一个对象。并且nil将等于零的整数值。

因此,在lldb中您应该使用p来打印整数值。这可能是正确的。

+0

但标记为NSInteger的! – AVEbrahimi

+5

仅仅因为这个名字以'NS'开始并不能使它成为一个对象。看看定义('typedef int NSInteger;')。 – Wain

4

我的输出稍有不同,但重点是,试图在一个整数上打印对象(如Wain所述),如果整数为0,则返回nil,如果为非零,则返回错误。 (但在这种情况下仍然LLDB给予p(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