Владелец файла думает, что это суперкласс

Что-то очень странное происходит с моим конструктором интерфейсов. Поэтому я создал подкласс NSWindowController в Xcode с включенной опцией создания XIB. Я начал программировать и успешно подключился к владельцу файла.

Но когда я запускаю свое приложение, я получаю сообщение об ошибке:

Failed to connect (workspaceControl) outlet from (NSWindowController) to (NSSegmentedControl): missing setter or instance variable
Failed to connect (workspaceField) outlet from (NSWindowController) to (NSTextField): missing setter or instance variable
Could not connect action, target class NSWindowController does not respond to -changeNumberOfWorkspaces:

Я не знаю, почему эта ошибка появляется, поскольку мой код настроен правильно:

рабочий код

И владелец файла установлен в правильный класс (AddController):

владелец файла

Так почему же он пытается связать мои представления с NSWindowController вместо моего подкласса?

РЕДАКТИРОВАТЬ:

Где я на самом деле использую AddController в коде:

AppDelegate.h

appdelegate.h

AppDelegate.m

appdelegate.m

Он находится в appdelegate, потому что это приложение в строке меню. (Если кому интересно)


person Minebomber    schedule 27.01.2016    source источник
comment
Вы пытались полностью воссоздать перо?   -  person Daniyar    schedule 27.01.2016
comment
Пробовали чистую сборку?   -  person Willeke    schedule 27.01.2016


Ответы (1)


Поскольку фактический объект, созданный в вашей запущенной программе, является NSWindowController, а не AddController. Вы показали нам, что AddController правильно объявлено, и вы показали нам, что владелец файла вашего пера установлен на AddController; это здорово, и именно поэтому вы не получаете предупреждение или ошибку времени компиляции о том, что что-то неправильно подключено. Но вы не показали нам, где на самом деле создается экземпляр объекта контроллера; и изучение этого, по-видимому, покажет, что оно не было изменено на AddController. Итак, во время выполнения у вас есть NSWindowController, в нарушение того, что вы обещали IB; и поэтому вы получаете ошибки времени выполнения.

person bhaller    schedule 27.01.2016
comment
Я обновил свой вопрос кодом в делегате приложения. - person Minebomber; 27.01.2016
comment
О боже. Я просто сделал cmd - f и набрал nswindowcontroller. Я обнаружил, что пару дней назад я тестировал xib, настроил NSWindowController и показал окно. Вот это да. Я чувствую, что зря потратил время каждого. - person Minebomber; 27.01.2016