关于“自我”和本地访问者

时间:2011-09-19 17:33:58

标签: objective-c

  

可能重复:
  Should I always use accessors for instance variables in Objective-C?

假设我的.h文件包含

Node *firstNode

.m文件

之间有什么区别

[firstNode doSomething];

[[self firstNode] doSomething];

2 个答案:

答案 0 :(得分:3)

[firstNode doSomething];直接访问实例变量而[[self firstNode] doSomething]没有。

这听起来非常明显,但是一个吸气剂可能会做各种各样的事情,它的声明可以引起各种有趣的事情。例如,标记访问者retain会影响firstNode的引用计数,而Eimantas的回答告诉我们超类(或子类!)可能会改变[self firstNode]的精确含义。

答案 1 :(得分:1)

假设您为@property实例变量声明了firstNode,前一种方法不会在您的类中使用[可能被覆盖的] getter。