我正在使用iPad SplitView模板,它在我开始在RootViewController中交换视图对象之前工作正常。当它工作正常时,将调用application:didFinishLaunchingWithOptions方法并设置我的持久存储对象,然后调用RootViewController:viewDidLoad方法用我的商店中的数据填充我的rootView。我打开了IB并开始在我的RootView中交换视图对象,现在应用程序:didFinishLaunchingWithOptions方法永远不会被调用,但RootViewController:viewDidLoad方法仍然可以。显然,应用程序崩溃是因为viewDidLoad方法依赖于didFinishLauchingWIthOptions方法的成功执行来设置持久性存储对象。有没有人对导致这种情况的原因有什么看法,或者我如何调查造成这种情况的原因?
我显然是iPhone OS开发的新手,所以如果这些问题在任何方面都是荒谬的,我会道歉。非常感谢您的帮助!
答案 0 :(得分:7)
这是因为在MainWindow.xib中,您的应用程序委托对象未连接到File的所有者(UIApplication)这一事实。您可以打开MainWindow.xib并右键单击App Delegate,查看它是否在引用Outlet到File的所有者中有连接。如果没有,请将其设置为。这将解决您的问题。
答案 1 :(得分:3)
-viewDidLoad
未从-application:didFinishLaunchingWithOptions:
调用。他们是独立的。调用层次结构可以概括为:
-application:didFinishLaunchingWithOptions:
-viewDidLoad
。