【发布时间】:2011-05-16 22:05:22
【问题描述】:
可能重复:
Should I Use self Keyword (Properties) In The Implementation?
假设我有一个类“Person”,它有一个实例变量“age”。来自 Python,在为 Person 类编写方法时,我习惯于使用“self.age”访问年龄,但是在 Objective C 中,我注意到在引用实例时,“self.age”和“age”都被接受变量(而在 Python 中只有前者可以工作)。
当没有明确指定您的意思是哪个实例的变量时,它是否默认为'self'?不明确指定自我是否被认为是不好的风格?如果没有,是否有关于何时使用 self.age 和何时使用 age 的约定?
【问题讨论】:
-
Guido 喜欢“显式”引用成员变量,因此他决定应该将它们都写成
self.ivarObjective-C 为 ivars 和方法名称提供了单独的命名空间,并且有一个新的语法元素使用 " properties”,其中self.ivar实际上是方法调用的糖。要在 ObjC 中对 ivar 进行简单访问,请编写裸 ivar 名称。除非您使用属性,否则点语法实际上是非法的,因为self是指针,而 Obj-C 是 C,等等等等。 (请参阅 ughoavgfhw 的回答):) 请参阅 Henrik 找到的链接。
标签: objective-c self