swift详解之十三 -----------AppDelegate

AppDelegate



它继承UIResponder , 并且实现了UIApplicationDelegate协议 。UIApplicationDelegate 协议中定义了很多app不同状态下触发的事件。

AppDelegate相当于程序的入口,在这里可以初始化程序。可以给页面上添加window,controller,view等 。

下面看下AppDelegate中重要的几个方法和这些方法的含义

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        //程序载入后执行
        print("didFinishLaunchingWithOptions")
        return true
    }

    func applicationWillResignActive(application: UIApplication) {

        //当应用程序从活动状态到非活动状态,这个发生在突然的打断,比如来电话。或者短信,或者当用户推出应用程序。过渡到后台状态
        //用这个方法暂停正在进行的任务,禁用计时器 。游戏用这个方法来暂停游戏
        print("applicationWillResignActive 被执行了")
    }

    func applicationDidEnterBackground(application: UIApplication) {
        //当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
        //用这个方法来释放共享的资源 , 保存用户数据 ,停用计时器。
        print("applicationDidEnterBackground 被执行了")
    }

    func applicationWillEnterForeground(application: UIApplication) {

        //当程序从后台将要重新回到前台时候调用,你取消进入后台的时候调用的程序
        print("applicationWillEnterForeground 被执行了")
    }

    func applicationDidBecomeActive(application: UIApplication) {
        //应用程序进入活动状态。这时候需要重新启用应用程序
        print("applicationDidBecomeActive 被执行了")
    }

    func applicationWillTerminate(application: UIApplication) {
        //应用程序将要被终结的时候执行  可以适当保存数据之类的
        print("applicationWillTerminate 被执行了")
    }

    func applicationDidReceiveMemoryWarning(application: UIApplication) {
        //如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止
        print("applicationDidReceiveMemoryWarning 被执行了")
    }

    func applicationSignificantTimeChange(application: UIApplication) {
        //当系统时间发生改变时执行
    }

    func application(application: UIApplication, willChangeStatusBarFrame newStatusBarFrame: CGRect) {
        //当StatusBar框将要变化时执行
    }

这里清楚解释了每个方法的执行事件 和大概用法 。大家可以在每个方法中打印下 ,然后运行程序看执行顺序,然后回到桌面 。再进入程序看看执行顺序 。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 17:04:58

swift详解之十三 -----------AppDelegate的相关文章

【H.264/AVC视频编解码技术详解】十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 1. H.264的CAVLC解析宏块残差数据的流

【H.264/AVC视频编解码技术详解】十三、熵编码算法(3):CAVLC原理

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 上下文自适应的变长编码(Context-base

[Xcode10 实际操作]一、博主领进门-(8)应用代理文件(AppDelegate.swift)详解

本文将演示使用iOS模拟器,演示程序的生命周期. 在项目导航区,打开应用代理文件[AppDelegate.swift] 应用代理文件时系统运行本应用的委托,里面定义了如程序的进入与退出.设备方向旋转等众多全局方法. 1 import UIKit 2 3 @UIApplicationMain 4 class AppDelegate: UIResponder, UIApplicationDelegate { 5 6 var window: UIWindow? 7 8 //把程序载入后需要执行的代码,

swift详解之二十二-----------UINavigationController的基本用法和页面传值几种方式

UINavigationController的基本用法和页面传值几种方式 本文介绍UINavigationController基本用法,因为涉及多页面顺便介绍页面传值 1.手写代码创建UINavigationController 手写方式创建很简单 , 首先创建一个项目 , 默认是从storyboard 加载的.这时候首先去掉默认加载方式 . 然后在AppDelegate.swift 的didFinishLaunchingWithOptions 中创建 代码如下: func applicatio

Swift详解之四-------妈妈再也不用担心我的闭包了

妈妈再也不用担心我的闭包了 注:本文为作者自己总结,过于基础的就不再赘述 ,都是亲自测试的结果.如有错误或者遗漏的地方,欢迎指正,一起学习. swift中闭包是一个很强大的东西,闭包是自包含的函数代码块,可以在代码中被传递和使用.跟C 和 Objective-C 中的代码块(blocks)很相似 .这个大家必须掌握!必须掌握!必须掌握!重要的事情要说三遍 闭包可以捕获和存储其所在上下文中任意常量和变量的引用. 这就是所谓的闭合并包裹着这些常量和变量,俗称闭包.下面我们就来攻克它! 1.闭包函数

swift详解之十-------------异常处理、类型转换 ( Any and AnyObject )

异常处理.类型转换 ( Any and AnyObject ) 1.错误处理 (异常处理) swift 提供第一类错误支持 ,包括在运行时抛出 ,捕获 , 传送和控制可回收错误.在swift中 ,错误用复合 ErrorType 协议的值表示 . Swift枚举把一系列相关的错误组合在一起.同时可以把一些相关的值和错误关联在一起 . 因此 编译器会为实现ErrorType协议的Swift枚举类型自动实现相应的合成 这里看个很简单的小例子. enum WrongName:ErrorType{ cas

swift详解之九---------------自动引用计数、循环引用

自动引用计数.循环引用(这个必须理解,必须看) 注:本文详细介绍自动引用计数,以及各种循环引用问题.一网打尽! 1. 自动引用计数原理 Swift 使用ARC机制来跟踪和管理你的内存,一般情况下,Swift 的内存管理机制会一直起着作用,你无须自己来考虑内存的管理.ARC 会在类的实例不再被使用时,自动释放其占用的内存. 然而,在少数情况下,ARC 为了能帮助你管理内存,需要更多的关于你的代码之间关系的信息.本章描述了这些情况,并且为你示范怎样启用 ARC 来管理你的应用程序的内存. 为了确保在

Swift 详解之一 -------- 变量声明

变量声明 1.普通变量 swift 像javascript一样是可以智能推断类型的,他会根据我们变量的值来推断变量的类型 var age = 10 // Int var name ="lily" //编译器会自动推断出String static let name = "MyClass" //静态常量 通过类名直接访问 eg: ClassName.name 2.存储型变量或者存储型属性 语法:var variable name: type = expression 例

swift详解之十四 -----------NSThread 异步下载图片

NSThread 异步下载图片 在IOS中处理多线程有三个方案 , NSThread .NSOperation .GCD .当然GCD应该是最方便的 ,我们一个一个学 .先理解底层的,最后再使用最方便的 . NSThread: 优点:NSThread 比其他两个轻量级 缺点:需要自己管理线程的生命周期,线程同步.线程同步对数据的加锁会有一定的系统开销 我们先研究下用NSThread 异步加载网络图片 : NSThread有两种创建方式 ,一种是通过实例方法.一种是通过类方法. let threa