Вопросы:
- Каждый раз, когда я открываю перо, появляются новые экземпляры предметов в перо.
создано, есть ли способ уничтожить (освободить память) их?
Или невозможно отменить эти представления и будет до конца приложения?
Причина запроса:
У меня есть 2 представления в отдельных файлах пера, которые необходимо загрузить, и, поскольку я не могу уничтожить элементы представления пера, даже после удаления всех сильных ссылок на представление
Предпринятые шаги (без успеха):
- установка выходного значения вида контроллера просмотра на ноль
- Контроллер окна имеет сильное свойство view-контроллера, я установил
что до нуля
Мое понимание (на основании некоторого тестирования)
- Когда я создаю тот же тип представления через код (используя alloc) без загрузки nib-файла (NSBundle loadNibNamed), я могу уничтожить экземпляр представления.
- но когда представление создается в результате загрузки nib-файла, оно остается включенным, хотя я удалил все сильные ссылки на представление
Примечание: это проект Mac Cocoa, использующий Автоматический подсчет ссылок (ARC)
Детали моего проекта:
- У меня есть 3 файла пера:
- MyViewA.nib - содержит настраиваемое представление типа MyViewA
- MyViewB.nib - содержит настраиваемое представление типа MyViewB
- MyWindow.nib - содержит NSWindow и пользовательский вид, давайте вызовем это
как viewX для справки
- Существует один оконный контроллер и один контроллер вида
- MyWindow.nib имеет 2 кнопки, одна кнопка для загрузки MyViewA в качестве подпредставления для viewX и
другой для MyViewB, который будет загружен как подпредставление для viewX
- Я загружаю nib-файлы, используя NSBundle
- Когда я пытаюсь добавить новое подпредставление в viewX, я удаляю уже существующее подпредставление с помощью removeFromSuperView и удаляю все сильные ссылки на представление
Я бы хотел, чтобы элементы файла пера были удалены (уничтожить память) после того, как я их закончу, но я не уверен, как этого добиться.