Указатели используются для хранения адреса выделенной памяти. Когда вы создаете объект в какао, вы выделяете память и сохраняете адрес в указателе.
BOOL, char, int сохранить значение.
Когда вы создаете класс, alloc выделяет память, поэтому вам нужно сохранить указатель на эту память, чтобы иметь к нему доступ:
NSMutableArray * arr = [[NSMutableArray alloc] init];
Как очистить типы C из памяти?
Простые типы размещаются в стеке. Когда метод вызывается, в стеке выделяется пространство для хранения всех переменных метода (плюс некоторые другие вещи, такие как параметры, адрес возврата и т. Д.). Так что стек растет. Как только метод возвращает сжатый стек, и пространство, которое использовалось методом, теперь освобождается - так что да, простые типы будут «очищены».
На самом деле все гораздо проще, чем кажется. Загляните в Википедия. В стек - раздел Аппаратные стеки , чтобы узнать больше, чтобы удовлетворить ваше любопытство.
Когда вы «выделяете память», эта память выделяется в куче. Куча есть для всего исполнения вашего приложения. Как только вы распределяете память в куче, вы получаете адрес этой памяти - вы сохраняете этот адрес в указателях. Указатель - это просто переменная, в которой хранится адрес памяти.
Когда ваш метод возвращает, у вас больше нет доступа к вашим «простым» переменным, объявленным в методе (например, BOOL, int, char и т. Д.), Но память в куче все еще там. Если у вас все еще есть адрес памяти (например, указатель), вы можете получить к нему доступ.
А как насчет переменных экземпляра «простого» типа (edit: inside object?)?
Когда вы создаете объект (мы говорим о цели C и Какао здесь) и выделяете его, вы выделяете пространство для всего объекта. Размер объекта - это размер всех его переменных (не уверен, добавляет ли obj-c другие вещи). Таким образом, переменные экземпляра являются частью памяти вашего объекта в куче. Когда вы отпускаете / удаляете объект, его память освобождается, и у вас больше нет доступа к переменным, которые хранятся внутри объекта (в obj-c вы вызываете release, каждый объект сохраняет счетчик ссылок, когда счетчик ссылок достигает 0, объект освобождается - память на кучу восстанавливается).