我对此有疑问。请查看以下示例代码:
UIButton *button;
button.tag = 1;
和
int but = (int)[(UIButton*)sender tag];
第一行我使用.tag方法将标记号1设置为按钮变量。在第二行中,我使用(int)[(UIButton*)sender tag];
提取并将发送者转换为整数值。我的问题是,.tag和tag方法有什么区别?
答案 0 :(得分:0)
应该没有区别。在Objective C 2.0之前,点方法不存在;这些都被添加了,但它们可以作为更长时间括号内呼叫的捷径。
在您的特定代码示例中,button
在第一个代码块中没有指向按钮的指针。你需要打电话
UIButton *button = [UIButton buttonWithType:UIButtonRoundedRect];
button.tag = 1;
这会将标记设置为1.如您所示,第二个代码块会使用现有按钮并将其标记提取到int
。并行方法的一个更好的例子是:
button.tag = 1;
和[button setTag:1];
,或
int tag = button.tag;
和int tag = [button tag];