在Objective-C中使用“self”是否有必要或者只是一个好习惯?我一直没有使用它而根本没有使用它,我似乎没有注意到任何差异。不管怎么说,这不是暗示吗?
答案 0 :(得分:5)
self
发送消息,则需要 self
。通过getter / setter访问属性有时也是有益的,在这种情况下,您还需要使用self
,如self.propertyname
或self.propertyname = value
。 (这些不等于propertyname
或propertyname = value
。
答案 1 :(得分:3)
引用实例变量时没有必要。当您想要将当前对象的引用传递给另一个方法时,例如设置委托时,这是必要的:
[someObj setDelegate:self];
在当前对象的同一个类中调用方法时也是必要的:
[self doMethod]
答案 2 :(得分:1)
用于处理它所依赖的变量。如果要使用合成的getter或setter,请使用带有self的点符号。
self.someProperty = @"blah"; //Uses the setter
someProperty = @"blah"; //Directly sets the variable
答案 3 :(得分:1)
Actualy每次都没有必要,但这是一个很好的做法,因为它让其他人更容易阅读你的代码。
当你在不同的类中拥有相同名称的对象时,有必要使用“self”keywork告诉你的软件你在同一个类中引用了对象。
这通常发生在更大的项目中。
答案 4 :(得分:0)
是的,因为Objective C没有像C / C ++那样的方法调用,而是使用消息发送,在
等上下文中使用self[self doSomething];和self.myProperty;
是必要的。
如果您正在访问ivar,则不需要自我。
希望有所帮助。
-CV