xcode – 为什么我的应用委托的didFinishLaunchingWithOptions方
我一直在使用Xcode中的iPad的SplitView模板.以下是基于拆分视图的应用程序模板为您自动生成的许多重要方法中的两个…
AppNameAppDelegate.m #pragma mark - #pragma mark Application lifecycle - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after app launch rootViewController.managedObjectContext = self.managedObjectContext; // Add the split view controller's view to the window and display. [window addSubview:splitViewController.view]; [window makeKeyAndVisible]; return YES; } RootViewController.m #pragma mark - #pragma mark View lifecycle - (void)viewDidLoad { [super viewDidLoad]; self.clearsSelectionOnViewWillAppear = NO; self.contentSizeForViewInPopover = CGSizeMake(320.0,600.0); NSError *error = nil; if (![[self fetchedResultsController] performFetch:&error]) { NSLog(@"Unresolved error %@,%@",error,[error userInfo]); abort(); } } 在进行任何更改之前构建并运行项目时,在调用RootViewController:viewDidLoad方法之前调用application:didFinishLaunchingWithOptions方法.我是iPhone开发的新手,但我认为这是正确和典型的序列.所以这是我所做的改变…… >一旦我确认一切正常工作而没有任何修改,我更改了RootViewController代码并将其设置为UIViewController的子类(默认情况下代替UITableViewController)并在Interface Builder中进行相应的调整.我建立并运行,一切仍然正常. 我需要让它恢复到以前的工作方式,因为正如您在代码中看到的那样,viewDidLoad方法依赖于didFinishLauchingWithOptions方法来执行,因此它可以设置rootViewController用于执行获取请求的managedObjectContext. >任何想法是什么造成的? 非常感谢您的帮助!我会继续研究和玩代码. 解决方法
在模板应用程序中-applicationDidFinishLaunching将RootViewController的视图添加到窗口,导致视图加载,所以很明显-viewDidLoad将跟随 – applicationDidFinishLaunching.
从ApplicationDidFinishLaunching(间接)调用ViewDidLoad. 如果正如你所说的那样,在applicationDidFinishLaunching之前调用viewDidLoad是因为你在调用applicationDidFinishLaunching之前已经做了一些事情来导致视图加载. 您是否在-viewDidLoad中添加了断点并查看堆栈跟踪以查看负责调用它的内容? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |