iOS 协议与委托
来源:互联网 发布:苹果5s数据用不了 编辑:程序博客网 时间:2024/05/18 11:28
协议
1、协议里面定义了一组方法,本身不对方法进行实现,让使用了它的类来实现
2、在任何类中,只有声明了该协议,就可以实现里面的方法
代理(delegate)
代理就是委托别人办事,当一件事情触发时,自己不处理,交给别人处理。
接下里我们来举一个例子,在一个工作中有管理者与员工,管理者要让某个职工到时间后汇报自己的工作状况,
首先我们先建一个CompanyManager类,在里面定义CompanyManager类与工作协议,代码如下:
头文件:
#import <Foundation/Foundation.h>@protocol WorkDelegate<NSObject>@required//必须实现的-(void)BeginWork;-(void)Working:(NSString *)workcontent;@optional//可以不实现-(void)FinishWork;@end@interface CompanyManager : NSObject@property(nonatomic,retain) id<WorkDelegate> delegate;-(void)ReportWork;@end
实现代码:
#import "CompanyManager.h"@implementation CompanyManager-(void)dealloc{ [_delegate release]; [super dealloc];}-(void)ReportWork{ //当事件触发的时候,自己不处理,交给别人处理 [_delegate BeginWork]; [_delegate FinishWork]; [_delegate Working:@"我正在做游戏开发"];}@end
然后,我们再来定义一个员工类,CompanyEmployee,要求在类中声明WorkDelegete协议,没有员工汇报自己的工作情况,实现代码如下:
头文件如下:
#import <Foundation/Foundation.h>#import "CompanyManager.h"@interface CompanyEmployee : NSObject<WorkDelegate>@end实现部分如下:
#import "CompanyEmployee.h"@implementation CompanyEmployee-(void)BeginWork{ NSLog(@"我已经开始工作了,正在做开发");};-(void)Working:(NSString *)workcontent{ NSLog(@"%@",workcontent);}-(void)FinishWork{ NSLog(@"我的工作已经完成了,还有什么新的工作要做吗?");};@end
接下来,我们来模拟一下,老板让员工汇报工作的情况,代码如下:
CompanyManager *manager=[[[CompanyManager alloc] init] autorelease]; CompanyEmployee *employee=[[[CompanyEmployee alloc] init] autorelease]; manager.delegate=employee; [manager ReportWork];//时间到了,汇报工作这样老板让汇报工作的时候,员工就汇报一下自己的工作了。
- ios委托与协议
- ios协议与委托
- iOS 协议与委托
- IOS协议与委托
- IOS协议与委托
- iOS中的协议与委托
- IOS代理协议与委托
- ios中协议与委托
- iOS中的协议与委托
- iOS中的协议与委托
- IOS代理协议与委托
- iOS中的协议与委托
- ios委托delegate与协议protocol
- ios学习(三) 谈谈协议与委托
- ios中协议与委托形象解释
- IOS学习笔记之协议与委托
- IOS开发第二天-协议与委托
- ios协议和委托
- C程序小结1
- Linux高编之进程--------fork函数的同步与异步(兄弟子进程和父子孙进程示列)
- NET 产品版权保护方案 (.NET源码加密保护)
- C++用new和不用new创建类对象区别 内存
- Mouse without Borders 让键盘和鼠标飞起来
- iOS 协议与委托
- Intersecting Lines(poj1269)
- C中的字符指针和字符数组的使用
- SQL经典语句
- jquery 插件--简单页面导航
- javascript中apply与call的区别(来自http://www.blogjava.net/jjshcc/archive/2010/08/04/327948.html)
- 整型数组处理算法(一)按照正态分布来排列整型数组元素
- C程序小结2
- sqlite第三方类库:FMDB使用