可能重复:
Should I always use accessors for instance variables in Objective-C?
假设我的.h
文件包含
Node *firstNode
在.m
文件
之间有什么区别
[firstNode doSomething];
和
[[self firstNode] doSomething];
答案 0 :(得分:3)
[firstNode doSomething];
直接访问实例变量而[[self firstNode] doSomething]
没有。
这听起来非常明显,但是一个吸气剂可能会做各种各样的事情,它的声明可以引起各种有趣的事情。例如,标记访问者retain
会影响firstNode
的引用计数,而Eimantas的回答告诉我们超类(或子类!)可能会改变[self firstNode]
的精确含义。
答案 1 :(得分:1)
假设您为@property
实例变量声明了firstNode
,前一种方法不会在您的类中使用[可能被覆盖的] getter。