Swift面向协议编程技术细节与工程演练

5星(超过95%的资源)
所需积分/C币:4 2017-12-01 09:14:48 1.7MB PDF
8
收藏 收藏
举报

GMTC全球移动技术大会ppt 作者:北京世纪好未来教育科技有限公司研发工程师陈刚 主题:Swift面向协议编程技术细节与工程演练
面向协议编程之前的协议 GMTC全球移动技术大会 ·OC&SWt2.0版本之前,协议是没有实现的 ,协议的用法大致就是: delegate datasource 比如最常用的“点赞”功能,在ce放置按 钮,覆盖ce的用户响应、保留按钮的用户 响应 用户点击按钮后需要修改数据源的状态。 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技 面向协议编程之前的协议 GMTC全球移动技术大会 按钮的定义在cel的子类中,| BAstion也在定 义在ce‖的子类中,而数据源却在 Contro|er 的子类中。 需要解决的问题是:如何把按钮的点击事件 传递给 Controller的子类。 写一个 delegate协议,请看工程演示 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技 面向协议编程之前的协议 GMTC全球移动技术大会 让我们来分解一下上面的操作: 1声明一个 Deleage协议,这个协议可能只用到一次 2在ce中定义可选型类型的属性,把1中定义的协议 作为类型使用。 3 Controller子类遵循自定义的 Delegate协议,并定义具 体实现 4在获得每个Ce的实例的时候,指定实例的 delegate 属性为 Controller,实现绑定 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技 面向协议编程之前的协议 GMTC全球移动技术大会 更加SW化的方案:使用闭包替代协议 请看工程演示。 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技 面向协议编程之前的协议 GMTC全球移动技术大会 吏用闭包的步骤分解: 1向定义其他类型的属性一样,定义一个闭 包并定义初始值(一般都是空操作) ·2在 controller-子类中为闭包属性重新赋值。 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技 面向协议编程之前的协议 GMTC全球移动技术大会 在SWft中闭包(当然还有函数和方法)是 级公民”,补充一些闭包的知识。 使用闭包的好处: 1步骤更简单,可读性强 2代码耦合度更高,避免跨越代码,增加无意义的 理解成本 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技 面向协议编程之前的协议 GMTC全球移动技术大会 使用闭包的注意事项 闭包和类一样,也是引用类型的,会持有内部的对象,所以有“循环引 用″的风险。在示例中使用了“捕获列表”来避免“循环引用〃。不过不需 要太过担心,苹果的官方文档中有说明,闭包只在特定情况下才有出 现“循环引用"的风险。 方法中的闭包参数不会出现“循环引用”的风险。需要注意的是,如果 方法体中有循环调用某个闭包参数的代码,经常在参数列表中为闭包 参数加上@ noescape关键字。@ noescape的主要目的是避免在循环中不 断引用相同的闭包,提升内存利用率。标准库中 Collection Type协议中 的map、 filter等常用的方法都是基于@ noescape的。 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技 面向协议编程之前的协议 GMTC全球移动技术大会 捕获列表是AP的使用者在使用时添加的, 使用者需要明确“循环引用〃的舳发条件,避 免添加无意义的关键字。 @ noescape是AP的开发者在定义时加入的, 在使用闭包时}中不会要求加人sef关键字, AP的使用者可以不用关心@ noescape 聚焦前沿技术传递实践经验 主办方 Geekbang>.nfoQ 极客邦科技

...展开详情
试读 81P Swift面向协议编程技术细节与工程演练
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
譕_詺 可以可以!!!
2018-05-02
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚钱or赚积分
最新推荐
Swift面向协议编程技术细节与工程演练 4积分/C币 立即下载
1/81
Swift面向协议编程技术细节与工程演练第1页
Swift面向协议编程技术细节与工程演练第2页
Swift面向协议编程技术细节与工程演练第3页
Swift面向协议编程技术细节与工程演练第4页
Swift面向协议编程技术细节与工程演练第5页
Swift面向协议编程技术细节与工程演练第6页
Swift面向协议编程技术细节与工程演练第7页
Swift面向协议编程技术细节与工程演练第8页
Swift面向协议编程技术细节与工程演练第9页
Swift面向协议编程技术细节与工程演练第10页
Swift面向协议编程技术细节与工程演练第11页
Swift面向协议编程技术细节与工程演练第12页
Swift面向协议编程技术细节与工程演练第13页
Swift面向协议编程技术细节与工程演练第14页
Swift面向协议编程技术细节与工程演练第15页
Swift面向协议编程技术细节与工程演练第16页
Swift面向协议编程技术细节与工程演练第17页

试读结束, 可继续读3页

4积分/C币 立即下载