博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC 代理模式
阅读量:6809 次
发布时间:2019-06-26

本文共 1593 字,大约阅读时间需要 5 分钟。

  hot3.png

一 代理模式概念

传入的对象,代替当前类完成了某个功能,称为代理模式

二 代理模式规范

1.协议名的规范
@protocol ClassNameDelegate
    -(void)functionName;@end

ClassName 需要其他类实现的功能,都声明在同一个协议中。

2.类声明的规范
@interface ClassName:NSObject    //设置代理属性    @property (nonatomic,strong)id
delegate;@end

三 代码

类说明:Doctor Sick

协议:SickDelegate

1.SickDelegate
#import 
@protocol SickDelegate 
@required-(void)cure;@end

2.Doctor
===类声明===#import 
#import "SickDelegate.h"@interface Doctor : NSObject
@property(nonatomic,strong)NSString *name;@end===类实现===#import "Doctor.h"@implementation Doctor/** *  实现协议方法 */-(void)cure{    NSLog(@"%@ sure...", self.name);}@end

3.Sick
===类实现===#import 
#import "SickDelegate.h"@interface Sick : NSObject/** *  属性 */@property (nonatomic, strong) NSString *name;/** *  代理 */@property (nonatomic, strong)id
 delegate;/** *  生病 */-(void)ill;@end===类声明===#import "Sick.h"@implementation Sick/** *  生病 */-(void)ill{    //通过代理调用 看病 方法    [self.delegate cure];}@end

四.主函数
#import 
#import "Doctor.h"#import "Sick.h"int main(int argc, const char * argv[]){    @autoreleasepool {                /**         * 患者类         */        Sick *joker = [Sick new];        joker.name=@"joker";                /**         * 医生类         */        Doctor *rose = [Doctor new];        rose.name=@"rose";                //绑定代理 让rose 为 joker 看病        joker.delegate=rose;        [joker ill];            }    return 0;}===输出===2014-11-16 23:42:11.736 代理模式[1209:303] rose sure...

转载于:https://my.oschina.net/wolx/blog/345375

你可能感兴趣的文章
【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
查看>>
为什么我刚发表的文章变成了“待审核”,csdn有没有官方解释啊
查看>>
Matplotlib 工具包 使用教程索引
查看>>
封装bt轮播图淡入淡出效果样式
查看>>
2016第29周三
查看>>
Maven 与 IntelliJ IDEA 的完美结合
查看>>
Apache
查看>>
Sqli-LABS通关笔录-15
查看>>
匹配除中文和空格意外的正则写法
查看>>
maven parent version not found
查看>>
Oracle 12c agent install for windows
查看>>
Java 扫描包下所有类(包括jar包)
查看>>
VBS弹出来的对话框如何置顶!--果然技巧
查看>>
什么是Satoshi?和比特币中本聪有什么关系?
查看>>
为何地址一样,值却不一样?
查看>>
iOS开发frame, contentSize, contentOffset, contentInset 区别联系浅析
查看>>
C#编程(四十六)----------正则表达式
查看>>
sql 2000 查询中增加序号列,自动增加列
查看>>
Windows 8 Charm工具条
查看>>
(转)互斥对象锁和临界区锁性能比较 .
查看>>