Я загрузил ваш проект.
Ошибка, которую вы получаете, это
'NSUnknownKeyException', причина: '[& lt; UIViewController 0x3927310> setValue: forUndefinedKey:]: этот класс не является ключевым кодом кодирования-
blockquote>Это вызвано контроллером представления
Second
вMainWindow.xib
, имеющим классUIViewController
вместоSecondView
. Проблема в правильном классе решает проблему.Кстати, это плохая практика иметь имена, такие как «строка» в Objective-C. Он приглашает на столкновение с именованием времени выполнения. Избегайте их даже в случаях, когда вы занимаетесь практикой. Именование столкновений может быть очень трудно отследить, и вы не хотите тратить время.
Другая возможная причина этой ошибки: при копировании & amp; вставка элементов из одного контроллера в другой, Xcode каким-то образом сохраняет эту ссылку на исходный контроллер, даже после редактирования & amp; перезапуская этот элемент в новый контроллер.
В Python (и большинстве языков), где код находится в пакете, отличается от рабочего каталога при запуске программы. Все относительные пути относятся к текущему рабочему каталогу, а не к файлу кода, в котором он написан. Таким образом, вы бы использовали относительный путь nltk_data/
даже из чертежа, или вы использовали бы абсолютный путь и не оставляли бы двусмысленности.
Атрибут root_path
в приложении (или плане) относится к каталогу пакета для приложения (или плана). Присоедините свой относительный путь к этому, чтобы получить абсолютный путь.
resource_path = os.path.join(app.root_path, 'enltk_data')
У вас, вероятно, нет причин добавлять эту папку каждый раз, когда вы вызываете представление. Я не знаком с nltk специально, но, вероятно, есть способ структурировать это, поэтому вы настраиваете путь к данным один раз при создании своего приложения.
project / app / blueprint
/ data
^ join with root_path to get here
^ app.root_path always points here, no matter where cwd is
^ current working directory