UI(四)协议 、代理、程序的执行流程

#pragma -------------协议-----------

 协议:共同遵守的条约 可以不遵守 遵守了->也可以不落实

 Protocol :协议 制定共同实现的方法(如果不实现会警告 但不会崩溃)

 协议定义:1、协议只有声明文件 只需要告诉人要遵守哪个方法 不需要指定具体怎么去实现

 2、协议有强制执行(@required)和选择执行(@optional),默认的是强制执行


 @required //强制执行 默认的 不写就默认

- (void)redLight;

- (void)greenLight;


 @optional //选择执行

- (void)yellowLight;


 协议是一个公共接口 只要遵守协议的类都可以使用这个接口


 声明协议步骤:

 1、创建声明协议:commcnd+N -> Object-c File ->选择Protocol

 公式: @protocol 协议名

 2、声明协议方法:只要遵守协议的类都可以使用这个接口

 声明协议的方法有两种;(1):强制执行(@required)不写的话默认强制执行

 (2):选择执行(@optional)



 3、遵守协议 实现协议步骤:

 1、导入协议名 #import"协议名.h"

 2、@interface 类名 : 父类名<协议名>

 3、实现协议里面的方法


 为什么要使用协议?协议不是一对一,而是多种类都可以使用

 答:协议是一个公共接口,可以通过公共接口去声明方法,让只要遵守协议的类都可以使用,就不用单独去声明接口方法。节省代码量

 #pragma ------------代理-----------

 代理:1、也是一个协议,让别人帮忙做某件事的协议

 2、自己做不了或者不去做,让别人去做

 代理又叫做委托 delegate

使用步骤:

 前三步 是写在 给别人值(帮别人做事)第二个页面

 1、声明代理方法

 2、声明属性接口

 3、确定什么时候触发代理


 后三步 写在接收数据的那 第一个页面

 4、导入类名 代理名

 5、挂上代理 (*****是否能 调用代理方法)

 6、实现代理方法



 #pragma --------程序的执行流程-----------

 程序的执行流程:

 程序的入口是main函数,使用 代理 ;根据程序的运行方法进入不同的代理方法


 __FUNCTION__ 当前执行的方法

__LINE__ 当前的行数

 NSLog(@"%s %d",__FUNCTION__,__LINE__);


 启动流程:

 1、main 程序的入口(只执行一次)

 2、加载完所有选项,准备启动->可以在这个方法里面写需要加载的内容(窗口、启动时要创建的对象、数据,(只执行一次)

 application didFinishLaunchingWithOptions:

 3、进入活动状态->可以看到加载出来的内容->还原之前的状态(不止调用一次)

 applicationDidBecomeActive:


 按HOME键或者其他应用程序进入后台的步骤:

 1、即将进入非活动状态(不止调用一次)->在这方法里可以写想要保存的应用状态

   {applicationWillResignActive:

 1⃣️当应用程序将要入非活动状态执行,

 2⃣️进入非活动状态执行的条件:1、比如来电话了 2、HOME键}


 2、进入后台状态 (以前进入后台15秒后应用程序将不再运行)如果想让应用程序一直运行,可以在这方法里面进行操作 (不止调用一次)

   applicationDidEnterBackground:


 再次回到应用程序执行流程:

 1、从后台即将进入前台时调用(不止调用一次)

 applicationWillEnterForeground:

 2、已经进入活动状态

 applicationDidBecomeActive:


 即将退出应用程序:(调用一次)

 applicationWillTerminate:


#pragma --------回顾----------

 1、协议

 2、代理

 3、程序的执行流程


 1、协议:公共接口 可以在协议里面声明 一些公共的方法 只要遵守协议的类 都可以使用这些协议方法

 导入协议:<协议名>

 好处:节省代码量 不用重复去声明相同的方法


 2、代理:委托别人去帮忙做某件事 也是一个特殊的协议


 3、程序的执行流程

 程序的入口是main 

 main会根据程序的运行状态 使用代理 去调用 对应状态的方法


 启动流程:

 1、main程序的入口

 main

 2、加载完所有选项 准备启动 -> 可以在这个方法里面写 需要加载的内容(窗口、启动时需要创建的对象、数据)(只执行一次)

 application:didFinishLaunchingWithOptions:

 3、进入活动状态-》可以看到加载出来的内容 -》还原之前的状态(不止调用一次)

 applicationDidBecomeActive:



 按HOME键或者其他使应用程序进入后台步骤:

 1、即将进入非活动状态(不止调用一次)->想要保存的应用状态

 applicationWillResignActive:

 2、进入后台状态(之前进入后台15秒后应用程序将不再运行)如果想让程序一直运行 可以在这个方法里面进行操作 (不止调用一次)

 applicationDidEnterBackground:



 再次回到应用程序执行流程:

 1、即将回到前台(不止调用一次)

 applicationWillEnterForeground:

 2、已经进入活动状态

 applicationDidBecomeActive:


 即将退出应用程序(只调用一次)

 applicationWillTerminate:

你可能感兴趣的:(UI(四)协议 、代理、程序的执行流程)