阅读此Objective-C语句的正确方法是什么?

时间:2012-04-03 23:58:13

标签: objective-c programming-languages

我开始学习如何阅读Objective-C中的消息语法,并希望加强对消息语法的理解(我来自Java / C#/ Ruby背景)。

我目前正在查看声明:

[self.view addSubview:label];

“将此消息发送到addSubView方法,标签为参数,mthod位于自身的视图对象上。”

(“on”对于描述对象的“点符号”并不是一个很好的方式。我愿意更好地转录它!)

您如何阅读和解释上述陈述?

3 个答案:

答案 0 :(得分:4)

这实际上是一个嵌套的消息发送,但是点语法会让人感到困惑。* ObjC中的消息和方法之间的区别最初也可能有点令人困惑。通常,人们可以将它们视为等效,但严格来说,将消息发送给对象;在对象的方法列表中查找消息,然后调用关联的方法。**

可以改写:

[[self view] addSubview:label];

因此,消息view正在发送到self接收方。然后,其结果是另一条消息的接收器位置,即addSubview:。你label作为addSubview:的论据是正确的。

在英语中,这是:“添加label作为self的{​​{1}}”或“发送view的子视图,通过addSubview: ,将label发送给view“的结果。


*点语法用作属性访问的糖,即使用属性的setter和getter方法;默认情况下,getter的名称与属性本身的名称相同。

**如果找不到该方法,该对象可以使用该消息执行其他操作。此方法/消息区别的唯一真正区别在于,可以在运行时更改与消息关联的方法 - 动态绑定。

答案 1 :(得分:3)

它调用addSubView:上的方法UIView,该方法是self的属性(可能是UIViewController实例或其子类,其中var标签为参数,大概是UILabel个实例。

答案 2 :(得分:0)

此声明将self.view(父视图“自我”)告诉addSubview label

相关问题