Выход "view" NSSplitViewController не должен указывать на его NSSplitView; используйте розетку splitView

Я разрабатывал приложение MacOS, используя раскадровку, которая определяет главное окно с панелью инструментов и разделенным видом. Это написано в Swift 3 - я еще не перешел на Swift 4. В splitview есть панель для графики и другая для текстового журнала; оба свитка. У меня есть контроллеры представления для всех трех; две вспомогательные сцены связаны с разделенным видом отношениями. Это работало до сегодняшнего дня, когда я установил Xcode 9 beta 4. (Да, у меня есть бета 3 в мусорном ведре в настоящее время и может вернуться)

После очистки папки сборки и компиляции я получаю ошибку

NSSplitViewController's 'view' outlet should not point to its NSSplitView; use the 'splitView' outlet instead 

Однако подкласс NSSplitViewController не имеет определенных выходов (два его потомка сообщают ему о своем существовании в своих методах viewDidLoad). Более того, мне кажется, что я не могу создать розетку между этим окном и его контроллером, которая в первую очередь создала бы ошибку.

Теперь я также отмечу, что разделение, нарисованное в сцене контроллера представления разделения, является горизонтальным, а не вертикальным, как это было. Я не вижу способа изменить это. (Я не могу запустить приложение, поэтому я не знаю, имеет ли это значение. Я подозреваю, что это имеет значение.)

Конечным результатом является то, что я не вижу, что ошибка пытается сказать мне. Эта ошибка не позволяет создавать и запускать приложение, тогда как в бета-версии 3 оно работало. Я надеюсь, что кто-то может объяснить, что Xcode говорит мне и как это исправить.

1 ответ

Я исправил это в своем собственном раскадровке. В окне точек я увидел, что точка обзора действительно была назначена NSSplitView, Я удалил это. Он также был назначен на розетку splitView, поэтому изменение, похоже, ничего не дало. Предупреждение ушло, и мой проект тогда строился.

Я понятия не имею, было ли это всегда так, и обновление компилятора менялось, или это было каким-то образом непреднамеренно установлено иначе. Это имеет смысл в любом случае, NSSplitview должен быть назначен как выход splitView, а не как view view.

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