UIApplication&程序启动原理
来源:互联网 发布:网络教育统考英语没过 编辑:程序博客网 时间:2024/06/07 11:37
UIApplication
1.单例 UIApplication *app =[UIApplication sharedApplication]
2.UIApplication对象是程序启动后创建的第一个对象
3.主要作用是创建主运行循环(死循环),避免程序一启动就马上关闭利用他可以做一些应用级别的操作
例:
// 注册用户的通知UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];[app registerUserNotificationSettings:setting];//设置应用程序的提醒数字app.applicationIconBadgeNumber = 10;//设置联网状态app.networkActivityIndicatorVisible = NO;//设置状态栏是否隐藏app.statusBarHidden = YES;**用UIApplication来管理状态栏是可以做动画效果的//设置状态栏隐藏动画 [app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];//设置状态栏的颜色[app setStatusBarStyle: UIStatusBarStyleLightContent animated:YES];// URL:资源全路径// URL:协议头://路径// 根据协议头判断用什么软件去打开:tel:->拨号软件 http: 网页 [app openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
Tip:
一般情况下 状态栏都是由控制器管理
-(BOOL)prefersStatusBarHidden;//设置是否隐藏-(UIStatusBarStyle)preferredStatusBarStyle;//设置状态栏颜色
如下设置info.plist 则取消控制管理 只能UIApplication对象管理
UIApplicationDelegate
// 应用程序的生命周期方法// 程序加载完毕的时候调用,在这个方法之前,加载info.plist文件,加载启动图片- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions//应用程序即将辞去激活状态- (void)applicationWillResignActive:(UIApplication *)application//应用程序已经进入后台- (void)applicationDidEnterBackground:(UIApplication *)application//应用程序即将回到前台- (void)applicationWillEnterForeground:(UIApplication *)application//应用程序已经变成激活状态- (void)applicationDidBecomeActive:(UIApplication *)application//应用程序即将终止- (void)applicationWillTerminate:(UIApplication *)application// 当程序接收到内存警告的时候调用 // 清空图片缓存- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
程序启动原理
main ->UIApplicationMain
*****UIApplicationMain底层做的事情*****
1.创建UIApplication对象
2.创建AppDelegate对象 ,并且赋值给UIAppLictaion对象的代理属性
3.开启主运行循环
4.加载info.plist 判断是否指定main.storyboard 如果指定就去加载
5.加载main.storyboard底层
1)先创建UIWindow对象2)加载storyboard,创建控制器3)把新创建的控制器作为窗口的跟控制器 让窗口显示在屏幕上
***没有main.storyboard则代码创建控制器
1.设置rootViewController
2.makeKeyAndVisible
控制器view的加载(loadView)
当第一次用到控制器的view时就会调用loadview方法来创建控制器的view(如果重写 则需要手动创建view)
底层实现
1)判断有没有指定storyboard
2)判断有没有指定的xib
3)如果没有则会直接创建几乎透明的view
1 0
- UIApplication&程序启动原理
- 程序启动原理和UIApplication
- 程序启动原理和UIApplication
- 程序启动原理和UIApplication
- 程序启动原理和UIApplication
- iOS 程序启动原理和UIApplication
- ios程序启动原理(UIApplication)
- ios-程序启动原理和UIApplication
- iOS程序启动原理和UIApplication
- iosUI篇程序启动原理和UIApplication
- iOS UIApplication和程序启动原理
- iOS程序启动过程,原理,UIApplication,代码启动界面 - iOS
- iOS开发UI篇—程序启动原理和UIApplication
- iOS开发UI篇—程序启动原理和UIApplication
- iOS开发UI篇—程序启动原理和UIApplication
- iOS开发UI篇—程序启动原理和UIApplication
- iOS开发-UIApplication和delegate & iOS程序的启动原理
- iOS开发UI篇—程序启动原理和UIApplication
- 又见GCD hd 2504
- jpa与spring整合
- 利用JMF可播放多种格式的音乐
- Cocos2d-x 3.11.1 Mac 编译Android Studio
- 像花椒,映客,来疯这种直播app,技术实现难度在哪?需要什么样技术人才,还有就是服务器带宽要求及成本?
- UIApplication&程序启动原理
- Linux netstat命令详解
- Java-Stack
- Android使用UncaughtExceptionHandler捕获全局异常
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- 1,css有几种引入方式
- HDU 3555 Bomb (数位DP)
- 哈哈,word 多少页 一千字?
- JAVA_运算符