商务服务
iOS开发之巧用Block和代理方法结合来传值
2024-11-19 03:08

好久没写技术博客了,因为996的工作周期已经持续好几个月了。每天晚上回家都没有太多精力学习很多其他的东西,而且很多时候是接着完善工作的项目的模块开发。所以博客停歇了这么久,更新率也低了不少,今天补充一篇关于我巧用block传值的技术总结。

iOS开发之巧用Block和代理方法结合来传值

 

需求:在一个输入框,输入几个关键字,弹出搜索的关键字列表。

备注:通过关键字得到的完整的关键字列表的数据是通过网络请求后台返回的数据。

效果:

    iOS开发之巧用Block和代理方法结合来传值

交互逻辑过程分析:

  这个搜索关键字的带输入框的控制器中,输入关键字"河南",然后将这个关键词作为网络请求的参数,请求关键词列表,也就是获取了搜索结果的数组,然后根据这个数组弹出UITableView展示数据,然后接着再输入关键词"理工",也就自然和前面拼接成"河南理工",又是将这个关键词进行网络请求,获得搜索结果数组,同样通过UITableView展示数据。很显然,包含河南理工四个字的结果也就只有"河南理工大学"了。

 

当然,这个"交互逻辑过程的分析"仅仅是一个业务逻辑过程的分析,但凡有点移动前端的开发经验的程序猿肯定能想到,在这个控制器的Textfield的监听方法里边添加搜索学校关键词的网络请求,然后在请求成功的block回调用,显示UITableView,加载搜索结果的数据数组

 

但是这里,我还有一个进一步的需求,那就是这个带输入框的控制器在整个项目中,有很多地方公用,我要提高这个功能的复用性。比如搜索模块的搜索公司关键字,输入"广州",所有的"广州...有限公司"数据列表展示出来。如果按照前面的基本思路"在这个控制器的Textfield的监听方法里边添加搜索学校关键词的网络请求,然后在请求成功的block回调用,显示UITableView,加载搜索结果的数据数组",那么搜索公司关键字,也要在这个Textfield的监听方法里面添加搜索关键字的网络请求?这样根本就没起到软件开发"高内聚,低耦合"的作用。所以进一步的需要思考的就是,能否将这个网络请求公开在外部被调用,我只要求回传的是关键词数组就行,比如外部网络请求学校关键词数组,就传入学校关键词数组,然后通过TableView展示,外部网络请求公司关键词数组,就传入公司关键词数组,然后通过UITableView展示。也就是说,我这个带输入框的控制器只做搜索结果数组的数据展示的职责,网络请求的过程不属于这个功能模块的职责。<业务逻辑的职责抽离,实现解耦>

 

首先,我们基本知道,搜索结果的数组需要从外部传入,在这里也就是跳转控制器的前面一个控制器传入。这里就需要一个代理方法执行被回调传入,然后在这个代理方法实现的逻辑执行网络请求,但是这时候还有一个问题,那就是网络请求会有时间延迟,如果仅仅通过回调代理方法直接返回结果是不行的,因为代理方法的执行是不会延迟的,也就是直接被回调,然后直接返回,这是代码语言的本性,开发久了并且熟练代理方法和block回传的自然就会有所体会,所以这里网络请求block回传(比如你可能用的是AFN网络请求接口,成功之后block会返回data具体的数据),就不能通过代理方法中的return直接返回了,而是在代理方法再添加一个block再一次回传网络请求block回传的数据。代码如下:

iOS开发之巧用Block和代理方法结合来传值

iOS开发之巧用Block和代理方法结合来传值

回到带输入框的展示关键词列表控制器的内部:

iOS开发之巧用Block和代理方法结合来传值

    以上就是本篇文章【iOS开发之巧用Block和代理方法结合来传值】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/27574.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
哈尔滨威尔特制衣厂
我是哈尔滨威尔特制衣厂的肖庭波,联系地址是哈尔滨服装城附近哈西商厦,我们公司是在黑龙江哈尔滨的个体私营公司,公司专注于服装
节到张家界武陵源必去地
节到张家界武陵源必去地长假想找个地方玩玩?张家界武陵源绝对是个好选取,这里风景绝美空气清新关键是人虽然多,但美景还是能让
超节点成WAIC焦点 未来国产GPU替代率或超80%
在人工智能产业蓬勃发展的当下,算力作为其核心驱动力,重要性不言而喻。然而,国产算力在前进的道路上却面临着诸多阻碍,发展现
原创樊振东上新闻联播了!加盟德甲真相曝光,背后战略价值惊人
央视《新闻联播》在体育强国专题报道中播放了网球选手郑钦文和乒乓球运动员樊振东的画面。 整个乒乓球项目只出现了樊振东一人,
山姆上新「周黑鸭风味鸭肉酱」,瑞幸推出乳酸菌美式和乳酸菌冰茶...|一周热闻
新产品1、20年来最大创新!百事在北美推出益生元可乐2、特别添加专利乳酸菌!瑞幸上新「乳酸菌美式」和「乳酸菌冰茶」3、美容成
多款新车与全域AI技术惊艳WAIC,吉利智能科技进入爆发期
原创|Jaden  编辑|Cong在正在举办的2025世界人工智能大会(WAIC 2025)上,集团携阶跃星辰联合参展,9X、10EM-P、A7和吉利银
云南施甸县:“善洲青苗课堂”守护青少年健康成长
中国青年报客户端讯(中青报·中青网记者 张文凌)今年暑假,共青团云南保山市施甸县委依托“返家乡”“三下乡”社会实践大学生
一年60万赴美留学值吗?这届留学生开始找“平替”
21世纪经济报道记者陈洁 实习生张星雨 广州、重庆报道从7月中旬开始,多省份陆续公布本科普通批,高校录取工作逐步推进。然而,
惠民贷延期还款会影响分期吗?2025最新解析指南,必看避坑省钱秘籍!
惠民贷延期还款会影响分期吗?2025最新解析指南,必看避坑省钱秘籍!惠民贷推迟还款是许多人应急时的救命稻草,但推迟会不会作用
舟山进口茶叶中文标签备案
,公司自有进出口权,酒类商品批发许可证、食品流通许可证、中国食品土畜牧进出口商会会员证、对外贸易经营者备案登记证、自理报