цель c помощь - вызов методов? - PullRequest
0 голосов
/ 21 мая 2011

Эй, Я новичок в программировании, я хотел знать, почему это всегда [метод самообслуживания]? Я имею в виду, почему так кто-то может объяснить мне, почему это я и что происходит на заднем плане? извините, если это глупый вопрос

спасибо, TC

Ответы [ 4 ]

3 голосов
/ 21 мая 2011

По сути, 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 { }

Помогает ли это?

0 голосов
/ 22 мая 2011

Если вы хотите убить Джона в ObjC:

[john sendBullet]

, если вы делаете sendBullet to myself (коротко самостоятельно), это самоубийство

[self sendBullet]

есть разница?:)

0 голосов
/ 21 мая 2011
  1. [self method] вызывает метод вызывающего класса. Например, в заголовочном файле вашего класса,

    @ interface YourClass: NSObject {

    }

    - (void) myMethod;

затем вы можете вызвать myMethod в YourClass, используя [self myMethod]. Имеет ли это смысл?

  1. Во время вызова [self method] фоновый режим не работает. [self method] - почти та же самая вызывающая функция в C. Когда вы используете [self method], 'method' в вашем классе просто вызывается сразу.
0 голосов
/ 21 мая 2011

Поскольку [self method]; вызывает метод -method в классе, из которого он вызывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...