时间:2021-05-02
配置如下:
Xcode 8.2
Swift 3.0
在iOS开发中,无论是 Objective-C 还是 Swift ,Delegate 有着具足轻重的位置,如TabelViewDelegate 与 TableViewDataSource。
Swift 中的代理模式 和 Objective-C 除了语法外,几乎一样。
Objective-C 代理模式
在介绍 Swift 代理模式前,先来看回顾一下 Objective-C 中的代理模式如何实现
Objective-C 中用代理实现反向传值:
委托方(子控制器)
委托方需要实现
创建协议 、声明协议方法
? 1 2 3 4 5 @protocol SubViewDelegate <NSObject> - (void)backWithStr:(NSString *) str; @end创建一个代理属性
? 1 2 // weak声明 @property (nonatomic, weak) id<SubViewDelegate> delegate;执行协议方法
? 1 2 3 4 // 判断代理是实现该方法,避免carsh if ([self.delegate respondsToSelector:@selector(backWithStr:)]) { [self.delegate backWithStr:self.textField.text]; }代理方(主控制器)
代理方需要实现
遵守(继承)协议
? 1 @interface ViewController () <SubViewDelegate>将代理设为自己
? 1 subVC.delegate = self;实现代理方法
? 1 2 3 - (void)backWithStr:(NSString *)str { self.label.text = str; }Swift 代理模式
Swift 代理模式 与 Objective-C 一样,只是语法不同。
Swift 中用代理实现反向传值:
委托方(子控制器)
创建协议 、声明协议方法
? 1 2 3 protocol SubViewDelegate { func backStr(str: String) }创建一个代理属性
? 1 var delegate: SubViewDelegate?执行协议方法
? 1 2 /// 执行代理方法,将值回传 delegate?.backStr(str: textField.text ?? "")代理方(主控制器)
继承协议
? 1 class ViewController: UIViewController, SubViewDelegate将代理设为自己
? 1 subVC.delegate = self实现代理方法
? 1 2 3 func backStr(str: String) { self.textF.text = str }总结
对比可以方法 Swift 代理模式 与 Objective-C 用法完全相同,只是语法发生了变化。
值得一提的是Swift 的扩展 extension可以用来继承协议,实现代码隔离,便于维护。
? 1 2 3 4 5 6 7 /// 使用扩展继承协议 实现协议方法 可以分离代码 extension ViewController: SubViewDelegate{ /// 实现代理方法 func backStr(str: String) { self.textF.text = str } }最后附上Demo源码
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://qiubaiying.top/2017/03/06/Swift-代理模式/
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用Swift实现的FlappyBird小游戏伴随着apple公司对swift的推广态度深入,swift火的很快,并且swift精简便捷的语法和强大的功能,对于使
愈来愈多的人做淘客代理商,但是近日有网民问淘客分销模式骗术是怎么回事,淘宝联盟代理商基本概念是啥?赶快看来下深入分析解释。1.淘客分销模式骗术是什么原因? 淘
淘宝现在开业的模式有很多种,有无来源的淘宝开业模式,也有淘宝代理模式。作为淘宝业者,如果选择代理模式,就必须学会设定代理模式。如何设置代发?所谓代理是指产品制造
本文实例讲述了java设计模式之静态代理模式。分享给大家供大家参考,具体如下:代理模式,可以通过代理可以在原来的基础上附加一些其他的操作。静态代理模式相对比较简
开设很多店铺时,需要选择店铺的类型。例如,企业店铺、旗舰店、专卖店等,可以选择代理模式、代理模式、代理模式等。不同的模式有不同的玩法。今天重点谈谈很多代理店1、