IBOutlet внутри приложения на основе документов

Я создал документ приложения на основе, но у меня была проблема с обработкой IBOutlet, потому что, когда я выбирал какой-то контроллер внутри документа в первом окне, иногда выбирался другой контроллер в другом документе окна... Может быть, я неправильно сделал с strong/ Слабый /readwrite или что-то в этом я не очень уверен, поэтому я решил заставить мое приложение иметь только один оконный документ на время. Теперь моя проблема. У меня есть arrayController, и когда я запускаю свое приложение и открываю сохраненный файл, он закрывает "пустой документ", созданный по умолчанию, и показывает новый документ окна с загруженными данными. Проблема в том, что arrayController второго окна, вызываемого внутри windowControllerDidLoadNib, является правильным указателем (созданным makeWindowControllers), но когда я использую это внутри кода, он имеет другой указатель, который является старым arrayController из пустого документа, который был закрыт!! Зачем? Закрытый метод освобождает все? (Я использую ARC). Извините, если мои слова перепутаны, я новичок. Спасибо. Это мой код:

Document* newDoc = [[Document alloc] init];
[[NSDocumentController sharedDocumentController]addDocument:newDoc];
[newDoc makeWindowControllers];
[newDoc showWindows];

1 ответ

Решение

Я решил эту проблему: когда вы определяете уведомление для некоторого объекта как nsdocument, они не выпускаются после закрытых вызовов. Так что нужно убрать наблюдателя!

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