在appdelegate加载我的mainWindow.xib之前设置coredata

时间:2009-09-04 19:08:08

标签: iphone cocoa-touch core-data xib mainwindow

我在appDelegate中设置了coredata,但它首先加载了mainWindow.xib以及该xib文件中的相应控制器+视图。这些控制器需要有一个managedObjectContext才能正确加载。在xib被取消归档后,它会在我的appDelegate中运行代码。

如何设置我的coredata然后加载mainWIndow.xib?或者只是确保在取消归档mainWindows.xib之前正确初始化coredata?

1 个答案:

答案 0 :(得分:3)

您可以覆盖awakeFromNib子类上的UIApplicationDelegate,并在那里设置核心数据。一旦所有对象从您的nib文件中取消归档,但在它们的实例开始工作之前,将调用此方法。请将awakeFromNib视为在实例开始运行之前调整任何行为的最后机会。

观察:

  • 覆盖awakeFromNib时,您必须致电[super awakeFromNib],否则您的超类可能无法正常初始化。
  • awakeFromNib的调用顺序未定义,因此您永远不会从awakeFromNib内的同一个Nib向任何其他对象发送消息。作为奖励,这也意味着awakeFromNib保证在之前运行同一NIB中的任何其他对象需要您的服务并向您发送任何消息。