使用正式协议的委托模式 protocol
来源:互联网 发布:淘宝上便宜衣服来源 编辑:程序博客网 时间:2024/04/27 19:16
/*
委托模式
两个对象间不能够直接联系,需要通过一个第三方对象,帮助他们联系,这一种模式,我们称之为'委托模式'
如何在OC中使用委托模式?在OC中实现委托模式需要OC中的一个元素'protocol',即协议
*/
委托模式
两个对象间不能够直接联系,需要通过一个第三方对象,帮助他们联系,这一种模式,我们称之为'委托模式'
如何在OC中使用委托模式?在OC中实现委托模式需要OC中的一个元素'protocol',即协议
*/
#import <Foundation/Foundation.h>@protocol SaleHouse <NSObject> //SaleHouse协议文件@required-(void)saleHouse;-(void)payMoney;@end
#import <Foundation/Foundation.h>#import "SaleHouse.h"@class Landlord; //@class 告诉编译器有这个类的存在@interface HouseSaler : NSObject<SaleHouse>@property(nonatomic,assign) Landlord *customer;//中介的客户@end#import "HouseSaler.h"#import "Landlord.h"@implementation HouseSaler-(void)saleHouse //实现协议里买房子的方法{ NSLog(@"我是中介,我替登记者卖房子");}-(void)payMoney //实现协议里付款的方法{ NSLog(@"我是中介,我把房子卖了,钱已经达到你账上"); [self.customer receiveMoney]; //回调委托的方法}@end
#import <Foundation/Foundation.h>#import "SaleHouse.h" //导入协议头文件@interface Landlord : NSObject//这里使用assign 是为了防止循环引用 使用正式协议的委托模式@property(nonatomic,assign) id<SaleHouse> delegate;-(void)saleHouse;-(void)receiveMoney;@end#import "Landlord.h"@implementation Landlord-(void)saleHouse{ //如果委托存在并且委托遵循指定协议 if (self.delegate && [self.delegate conformsToProtocol:@protocol(SaleHouse)]) { NSLog(@"我是房东,我已经将房子登记到中介了!"); [self.delegate saleHouse]; //调回委托卖房的方法 [self.delegate payMoney]; //调回委托付钱的方法 }}-(void)receiveMoney{ NSLog(@"我是房东,钱已经收到,谢谢中介!!!"); }@end
#import "ViewController.h"#import "HouseSaler.h"#import "Landlord.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; HouseSaler *houseSaler = [HouseSaler new]; //中介对象 Landlord *landlord = [Landlord new]; //房东对象 landlord.delegate = houseSaler; //中介作为房东的代理 houseSaler.customer = landlord; //房东作为中介的客户 [landlord saleHouse]; //房东卖房 }- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
1 0
- 使用正式协议的委托模式 protocol
- ios 正式协议protocol
- 043.@protocol 正式协议
- 043.@protocol 正式协议
- 协议的使用 Protocol
- 协议 Protocol 的使用
- 协议(protocol) & 委托(delegate)
- object-c 正式协议 protocol
- OC语言 正式协议---@protocol
- 协议(protocol) & 委托(delegate)
- 协议(protocol)和委托(delegate)
- 协议(protocol)委托代理
- Protocol协议及委托代理
- 关于委托delegate和协议protocol的讲解
- iOS 委托Delegate和协议Protocol的理解和应用
- protocol-“委托”的实现
- Objective-C 委托、非正式协议、正式协议
- objective-c中的正式协议 protocol
- shell 操作tomcat.sh
- 【PHP入门篇】1.echo & 注释--慕课网【学习总结】
- Java基础之接口
- Android笔记(13) ---布局优化include、merge、ViewStub的使用
- 近期工作中遇到的一些问题总结
- 使用正式协议的委托模式 protocol
- 第五部分: 定义度量值和主数据监管
- BZOJ3674: 可持久化并查集加强版&&BZOJ3673: 可持久化并查集 by zky
- ldap服务器搭建——python认证接口
- iOS 时间判断
- 导航栏边线及背景图片设置
- FMDB使用Queue:FMDatabaseQueue
- opencv 基本数据结构
- SignalR 超时链接翻译