前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【iOS 开发】UIApplicationDelegate 中两个值得注意的地方

【iOS 开发】UIApplicationDelegate 中两个值得注意的地方

作者头像
KyXu
发布2019-04-11 16:54:02
7500
发布2019-04-11 16:54:02
举报
文章被收录于专栏:KyXuKyXuKyXu

01 - app 的第一个执行代码的机会是什么

新建工程的时候,Xcode 默认创建的 AppDelegate 文件里面会有 UIApplicationDelegate 的 6 个代理方法,其中第一个是 application:didFinishLaunchingWithOptions:,我们通常会在这里进行 SDK 的初始化以及其他一些配置等等,但是 app 的第一个执行代码的机会其实是 application:willFinishLaunchingWithOptions:,官方注解是:

This method is your app’s first chance to execute code at launch time.

这个知识点可以用于面试,以及对于一些对初始化时机有要求的 SDK 配置的 bug 排查。


02 - 应该在哪个回调里面存储数据

applicationDidEnterBackground

官方已经写清注释,应该在 applicationDidEnterBackground: 来进行数据的保护性存储,但是考虑一种特殊情况:直接连按 home 键,然后上划杀死 app,这个方法还会调用吗?

State changes in an iOS app

答案是会的,应用从 active 状态至 suspended 状态,是必须经过 background 状态的,我们应该按照官方规范,在 applicationDidEnterBackground: 方法而不是在可能被调用更多次的 applicationWillResignActive: 方法里面进行数据的保护性存储。


参考链接:https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.11.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 - app 的第一个执行代码的机会是什么
  • 02 - 应该在哪个回调里面存储数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档