Что такое @synthesize, @dynamic в Objective-C?
Суть
Обе директивы отвечают на вопрос «откуда возьмутся getter/setter для @property».
@synthesize name = _name;— компилятор генерирует ivar_nameи аксессоры согласно атрибутам свойства (copy,atomic,getter=).@dynamic name;— компилятор ничего не генерирует и не ругается на отсутствие аксессоров: вы обещаете, что они появятся в рантайме (черезresolveInstanceMethod:/class_addMethod, forwarding) или в суперклассе.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep