【IOS 开发学习总结-OC-21】★★★objective-c面向对象——委托/代理(delegate)

本文介绍了Objective-C中的委托(Delegate)机制,包括委托的组成部分、弱引用的原因、三种主要用途及多播委托的概念。通过示例代码解释了如何在实际开发中使用委托进行事件传递、确定事件执行和传递值。同时,文章建议结合协议(Protocol)的学习以加深理解。
摘要由CSDN通过智能技术生成

本文建议结合上篇博文一起学习: 【IOS 开发学习总结-OC-20】★★★objective-c面向对象——协议(protocol)

delegate 是什么

协议和委托/代理关系很密切,代理是种设计模式。delegate是委托/代理模式.委托/代理模式是将一件属于委托者做的事情,交给另外一个被委托者来处理. 为了便于理解,这里都成为统一称为委托(delegate)。

一个标准的委托由如下内容组成:

1.协议的声明——用来声明哪些方法被委托出去

#import <Foundation/Foundation.h>

@protocol SecDelegate <NSObject>

-(void)phone;//打电话
-(void)payoff;//发工资
@end

2.委托者声明一个属性——用于代表被委托者,一般建议用id类型。注意:这个属性是弱引用——为什么是弱引用,会在后面说明。
@property (weak,nonatomic)id<SecDelegate>delegate;
3.被委托者声明实现了委托里的协议
@interface HXYSec : NSObject<SecDelegate>
4.设置委托——在被委托者里设置自身是委托者的被委托者。
boss.delegate=sec;//将被委托者自己的实例作为被委托对象
5委托事件——在被委托者里调用委托的方法

[boss.delegate phone];
[boss.delegate payoff];
//或者是
[sec phone];
[sec payoff];

示例代码:

SecDelegate.h

#import <Foundation/Foundation.h>

@protocol SecDelegate <NSObject>

-(void)phone;//打电话
-(void)payoff;//发工资
@end

HXYBoss.h

#impor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值