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



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

我目前正在查看以下声明:

[self.view addSubview:label];

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

("on"并不是描述对象"点符号"的好方法。我愿意接受更好的转录方法!

您如何阅读和解释上述声明?

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

它可以重写:

[[self view] addSubview:label];

因此,消息view被发送到self接收者。其结果是另一条消息的接收方位置,即 addSubview: .你说得对,labeladdSubview:的论据。

在英语中,这是:"添加label作为self view的子视图"或"发送addSubview:,传递label,发送到self发送view的结果"。


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

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

它在UIView上调用方法addSubView:,该方法是self的属性(大概是一个UIViewController实例或一个的子类,以var标签作为参数,大概这是一个UILabel实例。

此语句告诉您的视图self.view(即父视图"self"(以addSubview label

相关内容

最新更新