О каких "объектах верхнего уровня” Apple говорит в Руководстве по программированию управления памятью?

StackOverflow https://stackoverflow.com/questions/804539

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

Да, речь идет о случаях, когда вы загружаете перо вручную, иначе вы бы не вызывали Загружаемое имя:владелец:параметры:.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top