我发现基于文档的应用程序的体系结构存在一个主要问题。 基本上,每次字段中的文本更改时,将模型(简单字符串)存储在全局变量中。我有文件将此字符串保存为数据,并使用此数据恢复重新打开的文件。
现在,我现在看到的主要问题是,如果我恢复任何已保存的文件,我会在文档“readFromData”函数(工作)中填充文档中的全局变量。
但是如果我创建一个新文档,“readFromData”永远不会被调用,所以我无法将全局字符串设置为“”,因此我的新文档全局变量仍然填充了最后保存的字符串。 (我使用它在加载时将字符串放回文本视图。
因此,作为一个简单的解决方法,我需要能够使用一个自动调用的函数,并且只能通过创建新文档来调用,以将我的全局变量设置回“”。
我无法找到我可以覆盖的这样一个功能。是否存在..?
答案 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;
在初始创建文档时,每个文档只调用一次。保存到磁盘后打开文档时不会调用它。