2016-06-19 68 views
2

我正在使用Xcode在Swift for OS X中构建一个新的基于文档的应用程序。我希望默认的Document类被称为不是Document的东西(在这种情况下为Notebook),当然它仍然继承NSDocument(或者如果我使用核心数据,则为NSPersistentDocument)。我可以将其文件从Document.swift重命名为Notebook.swift,但是一旦我将实际的类从Document重命名为Notebook,运行该应用程序将弹出错误警报“No document could be created。”。控制台告诉我“DocumentType类型不映射到任何NSDocumentClass。”在Swift基于文档的应用程序中重命名文档类

所以,显然我必须做其他的事情来让文档架构在我重命名后识别我的类。但是什么?我发现some directions on another site,但它们是旧的,并且在使用Swift和故事板时为Objective-C和XIB编写;我需要做的事情可能会非常不同。在Swift中,使用故事板来重命名基于文档的应用程序的主文档类需要做什么?

编辑:有一个请求下面的代码。基本上,默认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项目'文档'(整个单词,匹配案例)。 – Willeke

+0

谢谢你,工作。如果其他人有同样的问题,会在下面添加一些细节。 –

回答

3

Willeke上面搜索“Document”(整个单词,匹配案例)的建议让我找到了我需要做的事情。为了记录,我需要进入Info.plist并转到Document types/Item 0(Document type)/ Cocoa NSDocument Class,并将“$(PRODUCT_MODULE_NAME).Document”更改为“$(PRODUCT_MODULE_NAME).Notebook”。

相关问题