Подтвердить что ты не робот

Плюс (+) против минуса (-) в objective-c

Возможный дубликат:
Что означают знаки плюс и минус в Objective C рядом с методом?

В чем разница между использованием плюса или минуса в Objective-C?

Например, большая часть временного кода начинается с -(void)somethingSomethingelse, но иногда это будет +(void)somethingSomethingelse

Спасибо!

4b9b3361

Ответ 2

- функции - это функции экземпляра, а функции + - это функции класса (статические).

Итак, скажем, у вас есть класс под названием Person, а следующие функции

-(void)doSomething;

+(void)doSomethingElse;

Вы будете ссылаться на эти функции следующим образом:

Person *myPerson = [[Person alloc] init];

[myPerson doSomething];

[Person doSomethingElse];

Это скорее описание синтаксиса, если вы понимаете концепцию класса vs instance.

изменить

просто добавьте: В objective-C вы можете фактически вызвать функцию класса в экземпляре, но этот эффект не отличается от вызова его в самом классе (по существу компилируется одно и то же).

Итак, вы можете сделать

[myPerson doSomethingElse]

Как правило, вы не сделали бы этого, так как это запутывает и вводит в заблуждение для чтения. Я указываю, что вы не будете удивлены, если вы столкнетесь с кодом, подобным этому.

Ответ 3

и публичные функции соответственно.

Таким образом,

id object = [[NSObject alloc] init];
+ (id)alloc;
- (id)init;

Где NSObject - это класс, а id - объект

Если вы когда-либо использовали С++, a + эквивалентен статическому