Методы класса различия и методы экземпляра

Каково различие между методами класса и Методами экземпляра. Почему нам нужны они отдельно? Кто-то может объяснить?

Методы класса и методы экземпляра

• Экземпляры отвечают на методы экземпляра

 - (id)init;
 - (float)height;
 - (void)walk;

• Классы отвечают на методы класса

 + (id)alloc;
 + (id)person;
 + (Person *)sharedPerson;

Taimur

5
задан Georg Fritzsche 24 July 2010 в 04:22
поделиться

1 ответ

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

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

Возьмем, к примеру, NSObject . NSObject имеет метод класса с именем + (id) alloc . Метод alloc используется для выделения экземпляра класса. Очевидно, что alloc должен быть методом класса, потому что, если бы это был метод экземпляра, откуда бы вы взяли "корневой" экземпляр?

С другой стороны - (id) init является методом экземпляра, потому что он инициализирует состояние экземпляра.

6
ответ дан 13 December 2019 в 19:20
поделиться