IBOutlet内部基于文档的应用程序

时间:2013-11-11 22:36:45

标签: nsdocument nsdocumentcontroller

我已经创建了一个基于应用程序的文档,但是当我在第一个窗口中选择文档中的某个控制器时,我在选择另一个窗口文档中的另一个相同的控制器时,我遇到了处理IBOutlet的问题... 也许我做错了强/弱/读写或者我不太确定的事情所以我决定强迫我的应用程序只有一个窗口文档的时间。 现在我的问题。我有一个arrayController,当我启动我的应用程序并打开保存的文件时,它关闭默认创建的“空白文档”并显示加载数据的新窗口文档。 问题是在windowControllerDidLoadNib内部调用的第二个窗口的arrayController是右指针(由makeWindowControllers创建)但是当我在代码中使用它时,它有另一个指针,它是已关闭的空白文档的旧arrayController!为什么?关闭方法释放一切吗? (我使用ARC)。 对不起,如果我的话很困惑,我是新手。谢谢。 这是我的代码:

Document* newDoc = [[Document alloc] init];
[[NSDocumentController sharedDocumentController]addDocument:newDoc];
[newDoc makeWindowControllers];
[newDoc showWindows];

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题:当您将某个对象的通知定义为nsdocument时,这些在关闭调用后不会被释放。所以你需要删除观察者!