我对 Runloops 的理解是基本的,所以这似乎是一个非常陈词滥调的问题。
我的application:didFinishLaunchingWithOptions
(或applicationDidFinishLaunching
)中有以下内容:
{
// 1. typical app setup work: create various views, create a tab bar, add
// navigation controller and views to the tab bar
// 2. perform some other app initialization tasks
// 3. Add main view to the window
[window addSubview:tabbarController.view];
// 4. Make window visible
[window makeKeyAndVisible];
// 5. Perform one final behind the scene task
[myTaskObject doSomeTaskHere];
}
这些方法中的每一个是否都按列出的顺序执行,或者是否有可能在应用程序的主运行循环完成放置主窗口的工作之前发生第 5 步'[window makeKeyAndVisible]'
是否doSomeTaskHere
需要包装成 aperformSelectorOnMainThread:withObject:waitUntilDone:YES
以确保 runloop 完成窗口的显示,从而在doSomeTaskHere
调用 ' ' 之前加载最顶层视图的任何视图?