Различие между “+” и “-” перед именем функции в Objective C

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

- (void)continueSpeaking;

+ (NSArray *)availableVoices;

Какая разница?

17
задан Facundo Casco 5 May 2012 в 20:46
поделиться

1 ответ

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

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

Пример: [AppDelegate someMethod]

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

Пример [[[UIApplication sharedApplication] делегат] someMethod]

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

Допустим, ваш класс получил имя MyClass , и вы создали его экземпляр и сохранили его в переменной с именем myInstance :

- (void) continueSpeaking can называться так: [myInstance continueSpeaking] .

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

29
ответ дан 30 November 2019 в 12:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: