米花读后感_开发选择Block还是Delegate

好好学习,天天向上。

阅读地址:http://www.cocoachina.com/ios/20150927/13525.html

如有侵权,请告知,马上删除。

黑色为摘抄片段,红色为自己的理解。

1.大多数delegate protocols 都拥有几个消息源。

  例如:需要的block需要的参数不同,复用造成意义不明。

  这个时候使用delegate比较合适。

其实通过定义多个block也能实现,并且多个block也能定义不同的名字。但是如果消息源实在太多的话,还是利用delegate更加合适。

2.一个对象只能有一个delegate。

  如果一个对象是单例,不要使用delegation。

 

每个对象只有一个delegate,但是如果需要把消息传递给多个人的话,每次都需要设置代理,并且遵守协议,并实现方法,使代码增多。这种情况下如果使用block,回调的消息只会进最近执行的一个方法的block中,代码量缩小很多。

3.一般的delegate方法会有返回值

如果对象的请求带有附加信息,更应该使用delegation

block回调不通过return返回结果。而是通过参数来进行返回如下,本应如此。

- (void)doSomeThingComplete:(void(^)(NSData *data))complete

{

dispatch_queue_t queue = dispatch_queue_create("test", NULL);

dispatch_async(queue, ^{

NSURL *url = [NSURL URLWithString:@"test"];

NSData *data = [NSData dataWithContentsOfURL:url];

if(complete) {

complete(data);

}

});

}

- (void)test

{

[self doSomeThingComplete:^(NSData *data) {

NSLog(@"%@",data);

}];

}

4.过程 vs 结果(Process vs. Results)

delegate的回调更多的面向过程,而block则是面向结果的。

如果你使用block去请求一个可能失败的请求,你应当只使用一个block。

通过block或者delegate其实都可以回调出个个阶段的信息,但是在设计之初,block感觉就是用于简化,略去过程的,所以block感觉正式面向结果的。

时间: 2024-07-31 09:59:15

米花读后感_开发选择Block还是Delegate的相关文章

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.19

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.19 2018.01.15 已完成: 1.版本上线 1.1上线操作步骤 1.1.1将网站整体文件夹拷贝到keqi1 1.1.2修改microDefinition.php的数据库名和根目录名 1.1.3修改注册界面发送验证码后直接填充功能 1.1.4修改del的主id的class为hide 1.1.5重新运行根目录的111.php(消除红点,也就是消除服务器返回的多余字符) 1.2修复上线过程中遇到的bug  1.2.1

解析最近很火的米花APP

什么是米花?为什么有优惠券? 今天我用最简单的文字,先梳理一下米花的概念,方便我们的新朋友更直观的了解米花.?用我们APP的名字来说就是:米花:有米,就有钱花!?用我们的数据来说就是:自用省钱,分享赚钱.?注意,0投资,0压力(资金,精力,时间等)?我们的一个有心的超级会员做的记录.?如果没遇到米花,那么商品总价是1576元.?那么现在有了米花,不仅可以领取优惠券还有佣金,实际付款只付了903元还有另外的佣金.?如果没有我们邀请人推荐米花,也许我们今天还在淘宝天猫原价购物,殊不知,80%以上商家

米花app怎么营销?怎么地推?怎么了解人性

在地推中,你认为什么是最重要呢?是宣传物料.礼品这些吗?不对.首先是态度,你为什么要做这件事? 态度决定结果 只有你自己告诉自己,你想要做这件事情,才有可能成为一个自驱动的人.你自然就会想到各种方法来提高你的转化. 做地推活动不难,你的心态非常重要.只要按照方法去行动,你就可以获得成功! 记得曾经参加了一个地面营销活动,就是到地铁站门口自我推广.凳子在地铁的出口处,参加人员轮流站到凳子上针对主题演讲,有的人很紧张,目光始终望着某个角落,而有的人则分享的比较自然,好像这里就是他的舞台.我发现这种分

依米花(奇异花收藏:(一))

(奇异花收藏:(一)) 依米花:又名 伊米花   听说依米花生长在撒哈拉沙漠的深处,只有为真爱才能找到.不知道是不是真的呢? 花期:2 天 (好短的生命周期"原谅我是个程序yuan") 花语:转瞬即逝的爱,瞬间的绚烂,奇迹.代表意义:瞬间的美丽.这个世界上万物都有灿烂一回的时候,这是上 苍赐给万物的权利.只有心中有爱,世界才会变的祥和和快乐多彩. 简介:(度娘这么说) 传说中生长在非洲的戈壁滩上,依米花非常奇特,每朵花有四片花瓣,一个花瓣一种颜色,红.黄.蓝.白,煞是娇艳绚丽. 实际上

李洪强iOS开发之 - block的使用

 李洪强iOS开发之 - block的使用   01 - 定义block //支付block typedef void(^invokePayBlock)(CFBaseOrderModel *model); 02 - 根据定义的block声明block属性 @property (copy, nonatomic) invokePayBlock payBlock; 03 - 在.h 和.m中给按钮脱线 -(IBAction)invokePayBlockHandler:(id)sender; -(IBA

新大番薯棋牌牛牛源码安装搭建 微信h5牛牛大厅开发选择方式

一个完整的客户端棋牌游戏从结构上包括了游戏.游戏大厅.游戏网站.客户端等部分,如果把做棋牌游戏比作建房子,那打造一个自己的棋牌之家就得经过前期的规划设计,中期的建筑施工,后期的装修设计等环节,有的人建房子可能会亲力亲为,有的人为了省钱而去购买小产权房或二手房,更多的人则选择开发商购买商品房.本质上,做棋牌游戏基本也是如此,无论个人还是团队企业,在当前日渐成熟的网络棋牌游戏市场,新大番薯棋牌牛牛源码安装搭建(h5.maliwl.com) 微信h5牛牛大厅开发选择方式   ,要想涉足无非也是以下这几

看《米花之味》

一部小众电影,并无多少人得知. 我一向喜欢电影,尤其小众,早的喜欢看日本的小津安二郎,台湾的侯孝贤,早期的张艺谋,现在的是枝裕和,以及青年电影节出来的口碑小成本小心思电影. 第一次知道<米花之味>是毒sir电影推荐了,一部通过讲述女儿和母亲之间的关系变化,关注着社会农村现状的普通得不能再普通的电影. 第二次知道是赵雷的<南方姑娘>宣传视频,雷子的歌听了有好几年,却总是听不烂,还越听越有感觉. 电影讲故事,需要选中大众口味--打工父母和留守儿童的问题,而不一样的是女性角度看问题,也引

GEC环保创业币系统平台搭建系统app软件开发选择哪家

GEC环保币矿机系统开发,GEC矿机系统开发,GEC环保创业币系统平台搭建系统app软件开发选择哪家,请找[孙女士 微电: 18*6156*140*62 扣扣:28*203*087*34],系统开发,定制开发.GEC环保创业币系统源码开发.GEC环保创业币系统平台搭建.GEC环保创业币系统app软件开发 GEC矿机1台 机器用一个月 一个月挖11个币 到第 27天挖到 10个买一台 准备换掉快要到期的机器 结余1 个币 再25天9个币加之前的一个又买一台结余2个 再22天8个币加之前的两个又买一

iOS开发系列-Block本质篇

概述 在iOS开发中Block使用比较广泛,对于使用以及一些常规的技术点这里不再赘述,主要利用C++角度分析Block内部数据底层实现,解开开发中为什么这样编写代码解决问题. Block本质 Block本质也是一个OC对象,内部也有isa指针,最终继承NSObject.它是封装了函数调用以及函数调用环境的OC对象. 原文地址:https://www.cnblogs.com/CoderHong/p/10055004.html