По сути, self
относится к объекту, с которым вы сейчас находитесь в контексте.[self somemethod]
означает, что вы вызываете метод с именем somemethod
в классе, который self
был инициализирован как.
Например, если вы должны сделать что-то вроде этого:
Foo *f = [[Foo alloc]init];
[f someMethod];
Вы будете вызывать someMethod
для экземпляра Foo
.
Но если вы работаете внутри класса Foo
, self служит явной ссылкой на текущий объект.В этом случае вы просто используете [self someMethod]
для вызова someMethod
.
-(id) init {
if (self = [super init]) {
[self someMethod];
}
...
}
-(void) someMethod { }
Помогает ли это?