iOS中的生命周期总结
来源:互联网 发布:魔兽争霸3mac怎么安装 编辑:程序博客网 时间:2024/06/09 19:15
对于一个iOS app来讲,生命周期是一个十分至关重要的东西。对于一个app来讲控制着app的开启、睡眠、关闭等状态;对于一个页面的来讲,控制页面的加载、显示、消失;对于一个View或者一个普通的类来讲,控制着初始化、绘制、释放。一、AppDelegate当你创建一个iOS项目时,在appDelegate中你会看到如下六个方法,他们分别控制着不同的app生命周期 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;当app完成加载时,此方法会被调用。此方法在app启动时只会执行一次。一般app的根窗口会在此方法中创建。调用后app处于激活状态。launchOptions中包含很多用户信息,可以通过如UIApplicationLaunchOptionsRemoteNotificationKey等Key来获取相关的用户信息示例(非storyboard/xib方式):- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSDictionary* userInfo = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey]; self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.viewController = [[ViewController alloc] init]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; return YES;}-(void)applicationWillResignActive:(UIApplication *)application;当app正在使用时,遇到来电、锁屏、回到home页、跳转到其他app并且app挂起不在后台运行的时候,此方法会被调用。调用后app处于挂起状态。此方法调用于applicationDidEnterBackground之前。 -(void)applicationDidEnterBackground:(UIApplication *)application;当app正在使用时,遇到来电、锁屏、回到home页、跳转到其他app并且app需要后台运行的时候(苹果允许local,music,voip,notifaction在后台中运行),此方法会被调用。调用后app处于后台运行状态。 -(void)applicationWillEnterForeground:(UIApplication *)application;当app从后台运行状态切换到前台运行时,此方法会被调用。调用后app处于未激活状态。此方法调用于applicationDidBecomeActive之前。 -(void)applicationDidBecomeActive:(UIApplication *)application;当app被重新激活时,此方法会被调用。此方法应用在app之前已经被打开,但是不处于激活状态,而在此跳转到激活状态的情况。每次跳转到app中,此方法都会被调用。调用后app处于激活状态。 -(void)applicationWillTerminate:(UIApplication *)application;当手机关机或者双击home键,将app向上拖动致使完全退出时,此方法会被调用。此方法执行之后app的进程会被杀死。 二、UIViewController 对于一个页面来讲,你有8个生命周期可以控制-(void)awakeFromNib;但使用storyboard或者xib时,在读取上面的布局之前,此方法会被调用。此方法早于其他方法调用,晚于初始化。在一个页面中,此方法只会被调用一次。-(void)viewDidLoad;读取storyboard或者xib的布局之后此方法会被调用。此方法晚于awakeFromNib调用,早于其他方法。在一个页面中,此方法只会被调用一次。多用于初始化页面布局与全局布局相关变量。 -(void)viewWillAppear:(BOOL)animated;当页面即将出现时,此方法会被调用。当页面之间跳转有动画时,此方法在动画开始时被调用。 -(void)viewDidAppear:(BOOL)animated;当页面已经完全出现时,此方法会被调用。当页面之间跳转有动画时,此方法会在动画结束时被调用。 -(void)viewWillDisappear:(BOOL)animated;当页面即将消失时,此方法被调用。当页面之间跳转有动画时,此方法在动画开始时被调用。 -(void)viewDidDisappear:(BOOL)animated;当页面已经完全消失时,此方法会被调用。当页面之间跳转有动画时,此方法会在动画结束时被调用。 -(void)viewWillLayoutSubviews;当页面布局即将发生全部变动时(多用于横屏视屏翻转),此方法会被调用,此方法在翻转动画开始时被调用。 -(void)viewDidLayoutSubViews;当页面布局变动结束时(多用于横屏视屏翻转),此方法会被调用,此方法在翻转动画结束时被调用。 三、View & NSObject-(void)layoutSubviews;当View中调用addSubView、view的Frame被重新设置、滚动一个UIScrollView、旋转屏幕时,此方法会被调用。改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。 -(void)drawRect:(CGRect)rect;重绘一个View时,此方法会被调用。 -(void)dealloc;一个View或者NSObject被释放时,此方法会被调用。NSNotification等可能会造成野指针、也通知的变量需要在此手动释放。
阅读全文
0 0
- iOS中的生命周期总结
- iOS中的应用生命周期
- 关于IOS开发中的生命周期
- Androd中的生命周期的总结
- iOS application生命周期研究、发现与总结
- iOS开发-appDelegate的生命周期总结
- ios开发总结之控制器的生命周期
- IOS view在UIViewController中的生命周期
- IOS中的生命周期及加载过程
- ios中的关键字总结
- iOS 中的多线程总结
- iOS中的GCD总结
- ios中的知识总结
- 【IOS 开发学习总结-OC-62】IOS 应用的生命周期
- ios生命周期
- IOS生命周期
- iOS生命周期
- ios 生命周期
- Spring源码分析----AOP概念(Advice,Pointcut,Advisor)和AOP的设计与实现
- Web性能提升
- 二叉树-3
- (作业)TableView、Delegate、DataSource
- python将py文件转换为pyc
- iOS中的生命周期总结
- CTX学长的快速幂
- linux基础(十二)虚拟机上外网
- jquery 1.7.2的 live/on事件 $.ajax的 async:false,
- 每天回顾linux命令(stat)
- Jenkins自动部署Maven +tomcat+linux环境java项目并自动部署到外网(补)
- linux软链接的创建、删除和更新
- 第二届数据标准化及数据治理大会成功举办 助力数据治理工作创新发展
- SSM(1)-SSM整合思想