在加载应用程序之前将数据加载到Cocoa视图中

时间:2008-12-29 17:28:00

标签: cocoa macos

我想在应用程序启动之前将一些数据从mysql加载到我的cocoa应用程序视图中。

我确信这应该发生在控制器中,以便它可以将所需的数据发送到视图。

我正在寻找一种用于此类事情的方法或常用技术。

非常感谢

3 个答案:

答案 0 :(得分:2)

听起来你正在寻找awakeFromNib函数。

http://www.cocoadev.com/index.pl?AwakeFromNib

答案 1 :(得分:1)

您可以使用- applicationDidFinishLaunching:- applicationWillFinishLaunching:委托消息,在应用程序委托/控制器中实现其中一个消息,并在那里进行任何初始化。

答案 2 :(得分:1)

Cocoa为您提供了许多可以在从笔尖加载对象之前和之后执行任务的地方,但仔细阅读文档以确保按照您期望的顺序进行操作非常重要。通常我在使用Cocoa应用程序时使用以下策略:

  • 在适当的时候我实施了 +(void)initialize方法,在创建类的任何实例之前调用。例如,我可能会在这里设置应用程序的默认首选项。
  • 在我的应用程序控制器(app delegate)中,我实现了applicationDidFinishLaunching:delegate方法来加载我的数据文件。如果这样可行,我会创建窗口控制器并显示我想要在启动时显示的任何窗口。
  • 在窗口/视图控制器中,我覆盖windowDidLoad:或loadView以执行涉及从笔尖加载的对象的任务。如果我需要创建任何不涉及nib的实例变量,我也会覆盖init方法并在那里执行。
  • 如果我需要在从nib加载后的视图对象中执行任何操作,我将覆盖awakeFromNib。