“.text”和“setText:”之间的区别?

时间:2012-07-25 04:30:17

标签: objective-c nsstring label uilabel

  

可能重复:
  Is there a difference between setting a property with the dot or the bracket syntax?

如果我在.h文件中定义标签,并且我想在.m文件中更改它的文本,那么使用label.text = @"..."[label setText:@"..."]之间真的有区别吗?他们似乎做了完全相同的事情,如果是这样,那么为什么采用不同的方式呢?

1 个答案:

答案 0 :(得分:10)

内部工作没有区别。第一种方法要求label的类型使得编译器可以验证属性的存在;即使编译器不知道确切类型(即类型为id时),第二种方式仍然有效。

第二种语法是原始语法;为了方便和可读性,添加了第一个语法。关于使用这些语法的主题有不同的思想流派:有些人会告诉你不要使用一种语法或另一种语法,并提供非常有效的理由。但最后,这是你的选择:你应该选择一种语法,并坚持下去。只要您保持一致并且您的读者了解您的偏好,他们就可以毫无困难地阅读和维护您的代码。