DevPrep

Все темы › Objective-C

Какие существуют root классы в iOS? Для чего нужны root классы?

Middle PRO

Суть

Root class — класс без суперкласса, вершина иерархии. Он даёт всем наследникам базовый контракт с рантаймом: isa, alloc/init/dealloc, подсчёт ссылок, интроспекцию (class, isKindOfClass:, respondsToSelector:), isEqual:/hash, description, forwarding. В Foundation два root-класса:

Технически можно объявить и свой root-класс (__attribute__((objc_root_class)) или макрос NS_ROOT_CLASS), но тогда вы сами пишете alloc, retain/release и т. д. — на практике так не делают.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store