IOS Delegate & protocal

本文深入探讨了Objective-C与Swift两种编程语言在iOS开发领域的应用,包括它们各自的优势、特点以及如何在实际项目中选择合适的语言进行开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结一下:

delegate是一个方式,程序组成单元之间分工的一种协调思想

protocal 这个东西不能单独说,要与它相关的两个主要东西一起说,一个是 委托者 通常是VIEW, 一个是被委托者 通常是某个CONTROLLER

它主要用来预先定义出来一个协议,可以理解为TCP/IP协议的思想,大家即 服务端、客户端 都按这个TCP/IP的协议规范来 沟通。

既然把它叫一个协议,那它一定有一个明确具体的定义,定义它有什么功能,即行为,或叫干什么事。

这个所谓的干什么事,就是预先定义出来,给委托者调用(由被委托者实现,协议只是定义一个行为的名字和相应的参数及类型),定义也定义好了。

下面就是,被委托者FOLLOW这个协议,然后实现它。委托者就可以设置自己的委托人是人,就是设置被委托人的引用到自己的DELEGATE属性上。

anyController.delegate = self.  SELF这个类里去实现协议方法。

那么委托者有了具体的委托人了,就可以有效的进行调用 这个协议里预先定义过的方法了。

委托者在类定义的头文件中也需要声明好一个 DELEGATE的属性 (@PROPERTY ID<PROTOACALNAME> delegate 这种形式)。

那这样一个有机的配合机制就出来了,这几者之间的一个明确的协调工作方式就完成了。

 

即,VIEW & CONTROLLER 双方都遵守了 PROTOCAL协议,如同服务端 与 客户端都 遵循实现了 TCP/IP协议

//-----------------------------------------------------------------------------------------------------------------Concolusion

PROTOCAL 用来定义预期的行为 @protocal { -(void)method_name;} @end

VIEW用来调用PROTOCAL定义的行为, 调用形式即 [view.delegate method_name_defined_in_protoal];

CONTROLLER用来实现PROTOCAL定义的行为,且,CONTROLLER被设置为VIEW的DELEGATE。即传引用给CONTROLLER的DELEGATE属性。 view.delegate = self;

会让整个程序模块功能之间的协作很清晰,它不是唯一的好方式,但确是一种好方式。

转载于:https://www.cnblogs.com/killiancheung/p/4688719.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值