Ответ 1
Вы всегда используете указатель, когда ссылаетесь на что-то в куче, а иногда, но обычно не на то, что ссылаетесь на что-то в стеке.
Так как объекты Objective-C всегда выделяются в куче (за исключением блоков, но это ортогонально этому обсуждению), вы всегда используете указатели для объектов Objective-C. Оба типа id
и Class
действительно являются указателями.
Если вы не используете указатели для определенных примитивных типов и простых структур. NSPoint
, NSRange
, int
, NSUInteger
и т.д.... обычно доступны через стек, и обычно вы не используете указатели.
Что касается Why the * in Objective-C?
, вы можете найти интересующий вас .