博客> iOS 关于block和delegate
iOS 关于block和delegate
2018-11-08 09:57 评论:0 阅读:291 二日三点

最近做到一个电商的项目,里面有个订单中心的界面让我头疼了许久,问题大致是我在回调和传参纠结该用block还是delegate。 大家先来看下界面  Simulator Screen Shot 2017年2月4日 上午10.02.45.png 这是原始的界面, 我将界面做了以下的分解  8387D1BA-B835-494F-89F3-10DA5972904D.png 然后我在写完界面的时候发现 fuck 我的层级变成了这样  4417E4FE-A8E0-4910-954E-24673CC522BE.png 这至少是嵌套了3个界面 然后,为了保证代码的健壮性,所有应该可以被点击的地方都做了处理,然后我计算了下 我的block在回传到第一视图的时候会达到惊人的10多个,如果在controller层写这10个block回调,在做数据处理显然是不对的。然后我就想到了是否可以用delegate来压缩我的代码。 为了解决这个问题,我去网上找找人们写的案例,查了下block与delegate的区别。(block点击事件的回调,代理事件回调并且传参)显然人们只是知道他们的区别在哪里,但是为什么这么做没人给出具体的答案。

我的理解是这样的,在一个视图模块当中,有可能你的block有2个3个或者更多,在简单界面你可以直接在c层界面里面写视图层的block回调,但是界面复杂度高,需要的视图层较多,block数量较多 就不适合直接写 你需要写delegate 这样写的好处是 你可以在最外一层的视图中给你的子视图的block回调分分类,并且可以告知c层你点击的是哪个区域 或者是哪一个模块, 这样后期做修改的时候你只需要在delegate中修改,不需要一条一条的去看你的block。  A73F7C36-947F-4DFB-A419-0A30B910C5D3.png

收藏
0
sina weixin mail 回到顶部