Следы памяти объектов и объектов Obj-C

В этом конкретном проекте по какао у меня есть свойства для набора представлений, и соответствующие подпредставления анализируются из файла XML.

Только один вид в наборе активен одновременно, и представления могут часто меняться.

Будет ли лучше

A.) Инициализируйте объекты представления с проанализированными свойствами и сохраните ссылку на них в массиве, который будет использоваться при необходимости.

b.) Инициализируйте объект NSO с проанализированными свойствами, которые, в свою очередь, могут создать его соответствующее представление по требованию через фабрику.

Логика этого заключается в том, что неиспользуемые NSView (большинство) могут быть освобождены ARC при необходимости, поскольку они не будут иметь постоянной ссылки.

Это вызывает другой вопрос.

Все ли это выполняется в фоновом режиме (поскольку NSView является подклассом NSObject), когда на NSView есть ссылка, но она не отображается?

1 ответ

Вы описываете реализацию своей собственной версии XIBS. Я хочу сказать, что "лучший" ответ - пересмотреть ваше дизайнерское решение. Вероятно, есть лучший и более простой способ достичь желаемого результата.

Разница в памяти между массивом объектов NSO, описывающих все свойства и подпредставления NSView по сравнению с массивом NSView, является номинальной.

Самый эффективный способ памяти - это ленивая десериализация отдельного представления через NSWindowController или NSViewController.

Другие вопросы по тегам