Образец Obj-C и следы памяти объектов

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

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

Было бы лучше

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

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

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

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

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


person user2005591    schedule 23.01.2013    source источник
comment
Как связан этот АРК?   -  person Fruity Geek    schedule 24.01.2013
comment
Название отредактировано для ясности, поскольку вопросы, касающиеся ARC, являются маргинальными.   -  person user2005591    schedule 24.01.2013
comment
Как правило, при работе с большим объемом данных лучше обрабатывать данные в сжатой форме и создавать различные компоненты представления только при необходимости.   -  person Hot Licks    schedule 24.01.2013


Ответы (1)


Вы описываете реализацию собственной версии xibs. Я собираюсь сказать, что «лучший» ответ — пересмотреть свое дизайнерское решение. Вероятно, есть лучший и более простой способ добиться желаемого результата.

Разница в памяти между массивом NSObjects, описывающим все свойства и подпредставления NSView, и массивом NSViews является номинальной.

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

person Fruity Geek    schedule 24.01.2013