协议、代理

来源:互联网 发布:大学生创业成功率数据 编辑:程序博客网 时间:2024/06/15 22:38

/*

 1.协议(Protocol):制定的共同遵守的条约可以不遵守 遵守了也可以不落实

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

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

 2.协议有强制执行和选择执行 默认的是强制执行

 @required//强制执行

 @optional//选择执行

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

 4.声明协议的步骤:

  创建声明协议command+n--Objective-c File--》选择Protocol

 @Protocol 协议名 <NSobject>

 @end

 ②声明协议方法(只要遵守这个协议的类都可以使用这个接口)

 声明协议的方法 有两种权限 1.强制执行@required(默认的) 2.选择执行@optional

 5.遵守协议、实现协议的步骤:

 1.在需要实现的类的.h文件导入协议名字#import "协议名.h"

 2.在该类父类名的后面加入:<协议名>

 

 6.实现协议的方法

  使用协议?不是一对一的 协议是一个公共接口可以通过这个公共接口去声明方法 让只要遵守协议的类 就可以使用就不用单独声明 接口方法

*/

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

/*

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

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

 代理又叫委托(delegate

3.程序的执行流程:

 程序的入口是main函数 使用《代理》根据程序的运行状态进入不同的代理方法

 启动流程:

 1.进入main函数 main:程序的入口(只执行一次)

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

   application:didFinishLaunchingWithOptions:

 3.进入活动状态--》可以看到加载出来的内容

 可以还原之前的状态(不止调用一次)

    applicationDidBecomeActive

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

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

 applicationWillResignActive

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

 applicationDidEnterBackground:

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

   1.即将回到前台

 applicationWillEnterForeground:

   2.已经进入活动状态

 applicationDidBecomeActive

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

 applicationWillTerminate:

*//*

   回顾:

   1、协议

   2、代理

   3、程序的执行流程

   

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

   导入协议:<协议名>

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

   

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

   

   3、程序的执行流程

   程序的入口是main

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

   

   启动流程:

   1main程序的入口

   main

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

   application:didFinishLaunchingWithOptions:

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

   applicationDidBecomeActive:

   

   

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

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

   applicationWillResignActive:

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

   applicationDidEnterBackground:

   

   

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

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

   applicationWillEnterForeground:

   2、已经进入活动状态

   applicationDidBecomeActive:

   

   

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

   applicationWillTerminate:

   

   

   

   */

    [self.windowmakeKeyAndVisible];

    Button *button=[[Buttonalloc]initWithFrame:CGRectMake(100,40, 100, 30)];

    //使用的是协议的方法

    [button setViewColor:[UIColorredColor]];

    [self.windowaddSubview:button];

    View *view=[[Viewalloc]initWithFrame:CGRectMake(0,0 ,50 , 50)];

    [view setViewColor:[UIColororangeColor]];

    [self.windowaddSubview:view];

        return YES;

}



//当应用程序将要进入非活动状态执行,

//进入非活动状态的条件

//1.来电话

//2.home


0 0