lmain函數中執行了一個UIApplicationMain這個函數
l
lintUIApplicationMain(intargc, charargv[], NSStringprincipalClassName, NSString*delegateClassName);
?argc、argv:直接傳遞給UIApplicationMain進行相關處理即可
?
?principalClassName:指定應用程序類名(app的象征),該類必須是UIApplication(或子類)。如果為nil,則用UIApplication類作為默認值
?
?delegateClassName:指定應用程序的代理類,該類必須遵守UIApplicationDelegate協議
lUIApplicationMain函數會根據principalClassName創建UIApplication對象,根據delegateClassName創建一個delegate對象,并將該delegate對象賦值給UIApplication對象中的delegate屬性
l
l接著會建立應用程序的Main Runloop(事件循環),進行事件的處理(首先會在程序完畢后調用delegate對象的application:didFinishLaunchingWithOptions:方法)
l
l程序正常退出時UIApplicationMain函數才返回