Выход "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.