懂ios生命周期,让我们更好的投入到开发当中,让我们开发更加高效。
新建ios项目,我先开始从应用程序生命周期说起。打开AppDelegate.swift文件。这是我们构建ios项目的委托。
//应用程序生命周期
//此方法在应用程序初始化完成后准备调用与准备与用户交互时调用
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {}
//程序将要挂起时候(锁屏将要接电话)
func applicationWillResignActive(_ application: UIApplication) {}
//应用程序退到后台时候调用(单击home)
func applicationDidEnterBackground(_ application: UIApplication) {}
//应用程序将要进入前台时候(被激活)
func applicationWillEnterForeground(_ application: UIApplication) {}
//程序恢复的时候
func applicationDidBecomeActive(_ application: UIApplication) {}
//程序将要关闭的时候调用,(内存不足,系统关闭或者长按app icon图标强行关闭)
func applicationWillTerminate(_ application: UIApplication) {}
应用程序生命周期我们都已经了解了。那我们继续看viewController生命周期
//viewController生命周期
//视图加载之后被调用,视图控制器生命周期只调用一次
func viewDidLoad() {}
//视图将要出现的时候调用
func viewWillAppear(){}
//视图已经出现的时候调用
func viewDidAppear(){}
//当收到视图将去除、被覆盖或隐藏于视窗时的通知会呼叫的方法
func viewWillDisappear
//当收到视图已去除、被覆盖或隐藏于视窗时的通知会呼叫的方法
func viewDidDisappear(){}
最后感谢在@whbalzac指点下完成。。。。
网友评论
如果您的应用程序当前已被暂停,系统会将您的应用程序杀死,并将其从内存中删除,恕不另行通知。 // Google翻译,当然最好的验证就是跑个demo,你试一下crash的时候会不会调用。刚刚我试了下,是不会的。这个方法,在没多线程的iOS 4之前,代替applicationDidEnterBackground方法被调用。4之后,调用applicationDidEnterBackground,进入后台,期间内存不足或者10分钟后,程序被杀,会调用applicationWillTerminate。
If your application is currently suspended, the system kills your application and removes it from memory without any notice.
viewWillDisappear // 才是即将消失