Разница между "+" и "-" перед именем функции в Objective-C - PullRequest
15 голосов
/ 10 апреля 2010

В чем разница между "+" и "-" перед объявлением интерфейса имени функции в программе Objective-C.Пример:

- (void)continueSpeaking;

+ (NSArray *)availableVoices;

В чем разница?

1 Ответ

26 голосов
/ 10 апреля 2010

+ определяет метод класса

Методы класса принадлежат самому классу , а не экземплярам класса.

Пример: [AppDelegate someMethod]

- определяет метод экземпляра

Пример [[[UIApplication sharedApplication] delegate] someMethod]

Одним из способов описания различия является то, что методы - работают с объектами, а методы + работают с самим классом.

Скажем, ваш класс был назван MyClass, и вы создали его экземпляр и сохранили его в переменной с именем myInstance:

- (void)continueSpeaking можно назвать так: [myInstance continueSpeaking].

Однако метод + (NSArray *)availableVoices можно вызывать только так: [MyClass availableVoices]

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