О каких «объектах верхнего уровня» говорит Apple в Руководстве по программированию управления памятью? - PullRequest
6 голосов
/ 30 апреля 2009

В Руководстве по программированию управления памятью для какао Apple рассказывает об объектах верхнего уровня. Говорят, что мне нужен Аутлет для каждого из них.

Если есть объекты верхнего уровня, которые вы не храните в торговых точках, однако, вы должен сохранить либо возвращенный массив по loadNibNamed: владелец: параметры: метод или объекты внутри массива чтобы предотвратить эти объекты выпущен преждевременно.

Так что именно они имеют в виду под "объектом верхнего уровня"? Я бы сказал, что они говорят о корневом представлении и окне. Что-то еще? И это подсказка только для случаев, когда я хотел бы загрузить их перо вручную? Или это применимо для любого пера и любого случая?

Ответы [ 3 ]

6 голосов
/ 30 апреля 2009

Объекты верхнего уровня - это объекты, которые отображаются в главном окне пера в Интерфейсном Разработчике, кроме Владельца и Приложения Файла.

3 голосов
/ 30 апреля 2009

Да, это касается случаев, когда вы загружаете Nib вручную, иначе вы бы не позвонили loadNibNamed: owner: options: .

0 голосов
/ 10 ноября 2010

Объекты, которые появляются в окне с владельцем файла, первым ответчиком, представлением, являются объектами верхнего уровня. Все, что вы добавляете в представление, будет подпредставлением - все подпредставления сохраняются в их прямом суперпредставлении, поэтому их не нужно хранить в другом месте. Само представление сохраняется контроллером представления, поэтому его не нужно сохранять.

Если вы добавляете не видимые объекты или виды, которые вы не сразу добавляете в основной вид (например, кнопки панели инструментов, которые в данный момент не отображаются), вам необходимо сохранить их, иначе они будут освобождены. Мой предпочтительный метод для этого - использовать IBOutlets с помощью @property, например:

@property(nonatomic, retain) IBOutlet UIBarButtonItem * myButton;

Это вызывает -setMyButton: вызываться для владельца файла (если этот код принадлежит владельцу файла), и объект, подключенный через IB, отправляется для сохранения в этом свойстве.

...