协议、代理
来源:互联网 发布:大学生创业成功率数据 编辑:程序博客网 时间: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会根据程序的运行状态 使用代理 去调用 对应状态的方法
启动流程:
1、main程序的入口
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键
- 协议,代理
- 协议、代理
- 3.协议,代理,非正式协议
- 代理协议SOCKS5简介
- 代理协议整理
- 代理协议SOCKS5
- HTTP协议之代理
- HTTP协议之代理
- TTP协议 (五) 代理
- 协议和代理
- HTTP协议之代理
- HTTP协议 (五) 代理
- HTTP协议 (五) 代理
- HTTP协议 (五) 代理
- HTTP协议 (五) 代理
- HTTP协议 (五) 代理
- HTTP协议 (五) 代理
- HTTP协议 (五) 代理
- 监控数据的获取
- java 线程池介绍
- 在sourceinsight中添加快速注释 Ctrl+/
- 考研目标
- 【springmvc+mybatis项目实战】杰信商贸-1.项目背景
- 协议、代理
- [bzoj 4016] [Fjoi 2014] 最短路径树问题
- 第十五周“知原理”题目1
- 【springmvc+mybatis项目实战】杰信商贸-2.数据库配置
- 【C++】一道考察重载、覆盖、多态的题目
- Qt 在窗体中摆放窗口部件
- 2015.12.4
- 用VBScript写Linux脚本——SecureCRT与VBScript
- HDU 2844 Coins(多重背包【二进制优化】)