2016-06-19 4 views
2

Я создаю новое приложение на основе документов в Swift для OS X с помощью Xcode. Я хотел бы, чтобы класс Document по умолчанию был вызван чем-то, что не является документом (в данном случае Notebook), хотя, конечно, он все равно будет подклассифицировать NSDocument (или NSPsistentDocument, если я буду использовать Core Data). Я могу переименовать его файл из Document.swift в Notebook.swift, но как только я переименую фактический класс из Document в Notebook, при запуске приложения появится предупреждение об ошибке «Никакой документ не может быть создан». Консоль сообщает мне: «Тип DocumentType не сопоставляется ни с каким NSDocumentClass».Переименовать класс документа в Swift на основе документов

Так что, очевидно, мне нужно сделать другие вещи, чтобы архитектура документа распознала мой класс, как только я переименовал его. Но что? Я нашел some directions on another site, но они старые и написаны для Objective-C и XIB, когда я использую Swift и раскадровки; то, что мне нужно сделать, скорее всего, будет совсем другим. Что нужно сделать, чтобы переименовать основной класс документа для приложения на основе документов, в Swift, используя раскадровки?

EDIT: для кода был запрошен код. В основном, по умолчанию Document.swift или Notebook.swift файлу выглядит

import Cocoa 

class Document: NSDocument { 
... [standard code for Document class goes here, edited out for brevity] 
} 

, и я изменил его на

import Cocoa 

class Notebook: NSDocument { 
[...] 
} 

Он работал с версией на верху и не работает с версией на дно.

+0

Эй, у вас есть какой-либо код, который вы можете опубликовать, чтобы помочь? – KFDoom

+2

Найдите проект Xcode для «Document» (целое слово, соответствующий регистр). – Willeke

+0

Спасибо, что сработало. Будет добавлено немного деталей ниже, если у кого-то другая проблема. –

ответ

3

Предлагаемое Виллеке предложение «Документ» (целое слово, соответствующий кейс) позволило мне найти то, что мне нужно было сделать. Для записи мне нужно было войти в Info.plist и перейти к типу Document/Item 0 (Тип документа)/Cocoa NSDocument Class и изменить «$ (PRODUCT_MODULE_NAME). Документ« до »$ (PRODUCT_MODULE_NAME) .Notebook».

Смежные вопросы