Указатель и Ссылка
Суть
В Objective-C (как и в C) ссылок как языковой конструкции нет — есть только значения и указатели. «Ссылка на объект» в разговорной речи означает указатель NSString *s: переменная хранит адрес объекта в куче, а не сам объект. Присваивание указателя копирует адрес, и обе переменные указывают на один объект; под ARC присваивание ещё и делает retain.
- Скаляры и структуры (
NSInteger,CGRect) передаются в методы по значению — копия, изменения внутри не видны снаружи. - Объекты передаются как указатели: метод может мутировать объект (
[array addObject:]), но не может переназначить переменную вызывающего — он получил копию адреса.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep