许昌网站开发哪家好,seo网站计划书,邹城市建设银行网站,加入网络营销公司1. 和大多数语言一样#xff0c;每一个iPhone应用也都是从主函数开始运行#xff0c;它的main函数都在XCode的Other Reasource逻辑目录下。 [cpp] view plaincopyprint?UIApplicationMain(argc, argv, nil, nil); [cpp] view plaincopyprint?UIApplicationMain(argc, arg…1. 和大多数语言一样每一个iPhone应用也都是从主函数开始运行它的main函数都在XCode的Other Reasource逻辑目录下。 [cpp] view plaincopyprint? UIApplicationMain(argc, argv, nil, nil); [cpp] view plaincopyprint? UIApplicationMain(argc, argv, nil, nil); UIApplicationMain(argc, argv, nil, nil); 系统会自动给你生成上面的代码第三个参数和第四个参数指明了应用程序的生命周期管理类和对生命周期管理类产生事件进行响应的委托类第三个参数被指定为nil则会被视为UIApplication程序的生命周期管理类一般就是UIApplication也或者是他的子类一般没人这么干吧。 第四个参数如果是nil的话则该函数会去参考**-info.plist这个配置文件来获得一个主NIB文件以完成余下的工作。 在**-info.plist文件中他会去找Main nib file base name这一列的值作为要载入的NIB文件名。默认都是MainWindow 并且从中指定生命周期管理类的委托。 2. 打开Resource目录下的MainWindowa.xib会看到Files‘s Owner的Class是UIApplication。 这个类有一个委托Interface Builder将他连接到了** App Delegate。这里的意思就是说在运行周期中UIApplication会产生一些事件但是他交给了** APP Delegate来做处理。 打开** APP Delegate.h默认是在Classess逻辑目录下。可以看到UIWindow和一个Controller都被声明成了IBOutlet。 [cpp] view plaincopyprint? interface testSDKAppDelegate : NSObject UIApplicationDelegate { UIWindow *window; testViewController *viewController; } property (nonatomic, retain) IBOutlet UIWindow *window; property (nonatomic, retain) IBOutlet testViewController *viewController; [cpp] view plaincopyprint? interface testSDKAppDelegate : NSObject UIApplicationDelegate { UIWindow *window; testViewController *viewController; } property (nonatomic, retain) IBOutlet UIWindow *window; property (nonatomic, retain) IBOutlet testViewController *viewController; interface testSDKAppDelegate : NSObject UIApplicationDelegate {
UIWindow *window;
testViewController *viewController;
}
property (nonatomic, retain) IBOutlet UIWindow *window;
property (nonatomic, retain) IBOutlet testViewController *viewController; 这样就可以在Interface Builder里连接并且完成相应的初始化工作。 观察MainWindow.xib的** APP Delegate实例Interface Builder已经为我们连接上了一个Window和一个Controller实例。 再看看** APP Delegate.m。 [cpp] view plaincopyprint? - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after app launch. [self.window addSubview:viewController.view]; [self.window makeKeyAndVisible]; return YES; } [cpp] view plaincopyprint? - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after app launch. [self.window addSubview:viewController.view]; [self.window makeKeyAndVisible]; return YES; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after app launch.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
return YES;
} 他在UIApplication的这个回调方法中将Controller的视图加载到了Window上。 关于这个回调方法文档当中有这么一句话 It is called after your application has been launched and its main nib file has been loaded. 就是说在程序运行起来并且主nib文件完成加载后这个委托方法将会被调用。 整个程序目前暂时不需要我们考虑的初始化流程就结束了 在这之后我们就可以加入我们程序的逻辑了。 由于时间仓促如有疏漏还请大家指出。 希望本文可以帮到你。