使用点语法的两个参数的self

时间:2014-06-21 02:06:09

标签: objective-c syntax self

我查看了很多问题,但仍然无法理解Big Nerd Ranch中的这种语法。

-(void) setContainedItem:(BNR *)containedItem
{
  _containedItem = containedItem;
  self.containedItem.container = self;
}

此处为self.containedItem.container = self,是否意味着

[[self containedItem]container:self]

相当于

[[self setContainedItem]container:self]

我很困惑并试图解决这个问题。 请解释一下。

1 个答案:

答案 0 :(得分:2)

这不是一个构造 - 它是两个属性访问。只需从左到右阅读它,每个点都有自己的操作。我们没有为self.containedItem分配任何内容,因此我们只是获得了它的价值。好的,这是一次操作。然后我们将该操作返回的对象的container属性设置为self。所以这大致相当于:

[[self containedItem] setContainer:self]