Ответ 1
Короче говоря, (+) является методом класса и (-) является методом экземпляра
См. этот ответ для полного объяснения В чем разница между методами класса и экземпляра?
Возможный дубликат:
Что означают знаки плюс и минус в Objective C рядом с методом?
В чем разница между использованием плюса или минуса в Objective-C?
Например, большая часть временного кода начинается с -(void)somethingSomethingelse
, но иногда это будет +(void)somethingSomethingelse
Спасибо!
Короче говоря, (+) является методом класса и (-) является методом экземпляра
См. этот ответ для полного объяснения В чем разница между методами класса и экземпляра?
-
функции - это функции экземпляра, а функции +
- это функции класса (статические).
Итак, скажем, у вас есть класс под названием Person
, а следующие функции
-(void)doSomething;
+(void)doSomethingElse;
Вы будете ссылаться на эти функции следующим образом:
Person *myPerson = [[Person alloc] init];
[myPerson doSomething];
[Person doSomethingElse];
Это скорее описание синтаксиса, если вы понимаете концепцию класса vs instance.
изменить
просто добавьте: В objective-C вы можете фактически вызвать функцию класса в экземпляре, но этот эффект не отличается от вызова его в самом классе (по существу компилируется одно и то же).
Итак, вы можете сделать
[myPerson doSomethingElse]
Как правило, вы не сделали бы этого, так как это запутывает и вводит в заблуждение для чтения. Я указываю, что вы не будете удивлены, если вы столкнетесь с кодом, подобным этому.
и публичные функции соответственно.
Таким образом,
id object = [[NSObject alloc] init];
+ (id)alloc;
- (id)init;
Где NSObject - это класс, а id - объект
Если вы когда-либо использовали С++, a + эквивалентен статическому