“自我”是否必要?

时间:2010-05-07 13:32:56

标签: objective-c iphone

在Objective-C中使用“self”是否有必要或者只是一个好习惯?我一直没有使用它而根本没有使用它,我似乎没有注意到任何差异。不管怎么说,这不是暗示吗?

5 个答案:

答案 0 :(得分:5)

如果您希望对象向self发送消息,则需要

self。通过getter / setter访问属性有时也是有益的,在这种情况下,您还需要使用self,如self.propertynameself.propertyname = value。 (这些不等于propertynamepropertyname = 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