美文网首页
UIApplicationDelegate 中两个值得注意的地方

UIApplicationDelegate 中两个值得注意的地方

作者: SpursGo | 来源:发表于2017-11-02 14:25 被阅读36次

    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

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

    State changes in an iOS app

    State changes in an iOS app

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

    相关文章

      网友评论

          本文标题:UIApplicationDelegate 中两个值得注意的地方

          本文链接:https://www.haomeiwen.com/subject/zswopxtx.html