IOS Empty Application ,纯代码创建的视图应用程序
2014-04-03 16:10
337 查看
我用的XCode 版本是5
创建个ios工程,选Empty Application
![](http://img.blog.csdn.net/20140403145132359?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG9sZHNreQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
创建成功后,Xcode会自动生成必要的代码。我看到这些代码时,立刻联想到了 .net 的WinFrom工程的代码,很相似。
UIApplicationMain
打开 main.m文件
上面的代码中,除去@autoreleasepool指令,main函数体只有一行代码。
注意UIApplicationMain函数的第4个参数,NSStringFromClass([AppDelegate class]),是个字符串值,也就是你完全可以用@“AppDelegate”常量字符串代替它
更多的关于"UIApplicationMain介绍"。
AppDelegate有个类型为UIWindow*成员的window。
打开AppDelegate类的实现文件,里面有UIApplicationDelegate协议的默认实现。
其中,didFinishLaunchingWithOptions实现里面
可以看到,AppDelegate实例的window成员这里进行初始化。一般的,window窗口应该是ios应用程序的第一个窗口视图。
代码中,window的背景颜色是白色 [UIColor whiteColor] ,makeKeyAndVisible是让这个窗口可见,并显示到屏幕上。
执行流程示意
创建个ios工程,选Empty Application
创建成功后,Xcode会自动生成必要的代码。我看到这些代码时,立刻联想到了 .net 的WinFrom工程的代码,很相似。
UIApplicationMain
打开 main.m文件#import <UIKit/UIKit.h> #import "AppDelegate.h" //AppDelegate的名字可以更改,我使用的是默认的。 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }看到了我们再熟悉不过的main函数了。Object-C承袭了C的这个main入口函数特性。当我们启动ios用程序时,运行时将准备工作做好后,就执行main函数。
上面的代码中,除去@autoreleasepool指令,main函数体只有一行代码。
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));这行代码还直接return了,那么可以推断UIApplicationMain函数里面执行了某种“死循环”,才能让应用程序运行到这行代码不会立刻结束。这种“死循环”和windows的消息循环是类似的。
注意UIApplicationMain函数的第4个参数,NSStringFromClass([AppDelegate class]),是个字符串值,也就是你完全可以用@“AppDelegate”常量字符串代替它
return UIApplicationMain(argc, argv, nil, @"AppDelegate" );UIApplicationMain会使用反射创建AppDelegate类的实例。
更多的关于"UIApplicationMain介绍"。
委托类AppDelegate
打开AppDelegate类的声明文件#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @endAppDelegate继承自UIResponder,遵从UIApplicationDelegate协议。UIApplicationMain便是通过UIApplicationDelegate协议和AppDelegate通信。
AppDelegate有个类型为UIWindow*成员的window。
打开AppDelegate类的实现文件,里面有UIApplicationDelegate协议的默认实现。
其中,didFinishLaunchingWithOptions实现里面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; }
可以看到,AppDelegate实例的window成员这里进行初始化。一般的,window窗口应该是ios应用程序的第一个窗口视图。
代码中,window的背景颜色是白色 [UIColor whiteColor] ,makeKeyAndVisible是让这个窗口可见,并显示到屏幕上。
执行流程示意
相关文章推荐
- 九十七、创建 简单的iOS列表视图应用程序
- 使用代码创建一个IOS应用的视图
- iOS: 学习笔记实例, 用代码控制视图创建与切换
- ios-将代码创建的视图控件放入拖拽控件的下面
- iOS UICollectionView(转一) XIB+纯代码创建:cell,头脚视图 cell间距
- IOS开发OC代码中创建Swift编写的视图控制器
- iOS 使用纯代码或xib创建圆角视图
- iOS中创建表格类视图WBDataGridView的实例代码
- [ios]使用代码进行故事板创建的视图的跳转 ?
- 九十六、利用 标签栏 创建 多视图iOS应用程序
- 创建IOS 5 News Stand应用程序之一 – 外观
- (iOS)iPhone手机程序源码:全代码实现选择视图界面NSArray
- 详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】
- Xcode创建的默认iOS OpenGL ES 2.0 project代码分析
- JXTA应用程序中创建一个PeerGroup的典型代码
- 创建IOS 5 News Stand应用程序之一 – 外观
- iOS 视图控制器(ViewController)中的代码规范
- iOS创建头部视图
- IOS开发-UI学习-使用代码创建button
- ios之多视图应用程序源码