Objective c 正在从文件加载NSDocument数据,但出口为零?

Objective c 正在从文件加载NSDocument数据,但出口为零?,objective-c,cocoa,nsdocument,Objective C,Cocoa,Nsdocument,我正在编写一个Cocoa应用程序,从文件加载数据。这涉及重写类型为错误的readFromData:。我很好奇,当调用readFromData:of type:error:时,人们如何处理尚未连接的插座。苹果公司提供的文件说明: 。。。您必须记住,在加载nib文件中包含的文档用户界面对象之前,会调用NSDocument数据读取方法,例如readFromData:of Type:error:。当然,在加载nib文件之前,您不能向用户界面对象发送消息 调用readFromData:of Type:er

我正在编写一个Cocoa应用程序,从文件加载数据。这涉及重写类型为错误的readFromData:。我很好奇,当调用readFromData:of type:error:时,人们如何处理尚未连接的插座。苹果公司提供的文件说明:

。。。您必须记住,在加载nib文件中包含的文档用户界面对象之前,会调用NSDocument数据读取方法,例如readFromData:of Type:error:。当然,在加载nib文件之前,您不能向用户界面对象发送消息


调用readFromData:of Type:error:后加载UI对象有什么好处?我想这是我的门店为零的原因。由于outlet尚未加载,我发现我需要创建额外的变量副本来存储数据,这些数据将存储在该方法结束后创建的UI元素中。

分离模型和视图代码
readFromData:ofType:error:
严格用于尝试读取文档数据并能够发出操作成功或失败的信号

此外,在我看来,NSDocument子类实际上不应该有outlet或UI代码。可以将NSDocument看作是管理文档数据的控制器;除了重写NSDocument的方法外,该子类不应该做任何事情或做很少的事情。在NSDocument子类中,我重写
-[NSDocument MakeWindowController]
,并调用
-[NSDocument addWindowController::][/code>传入我创建的窗口控制器子类。UI的初始化代码在
-[NSWindowController windowDidLoad]
中完成。一如既往。NSWindowController还有一种通过
-[NSWindowController文档]
访问文档的有用方法

此外,在调用
readFromData:ofType:error:
之前,可以加载UI,就像还原文档时一样。在这种情况下,如果还原操作成功,将覆盖
-[NSDocument revertToContentsOfURL:ofType:error:][/code>,并通知窗口控制器从更新的文档重新加载其UI