NSDocument检测何时创建新文档而不是恢复保存的文档

时间:2015-02-12 17:46:37

标签: cocoa swift nsdocument

我发现基于文档的应用程序的体系结构存在一个主要问题。 基本上,每次字段中的文本更改时,将模型(简单字符串)存储在全局变量中。我有文件将此字符串保存为数据,并使用此数据恢复重新打开的文件。

现在,我现在看到的主要问题是,如果我恢复任何已保存的文件,我会在文档“readFromData”函数(工作)中填充文档中的全局变量。

但是如果我创建一个新文档,“readFromData”永远不会被调用,所以我无法将全局字符串设置为“”,因此我的新文档全局变量仍然填充了最后保存的字符串。 (我使用它在加载时将字符串放回文本视图。

因此,作为一个简单的解决方法,我需要能够使用一个自动调用的函数,并且只能通过创建新文档来调用,以将我的全局变量设置回“”。

我无法找到我可以覆盖的这样一个功能。是否存在..?

1 个答案:

答案 0 :(得分:3)

我不确定我明白你要做什么。

您可以使用此NSDocument初始值设定项:

/* Initialize a new empty document of a specified type,
   and return it if successful.
   …
   You can override this method to perform initialization that
   must be done when creating new documents but should not be done
   when opening existing documents. 
*/
- (instancetype)initWithType:(NSString *)typeName error:(NSError **)outError;

在初始创建文档时,每个文档只调用一次。保存到磁盘后打开文档时不会调用它。