【第22期】观点:IT 行业加班,到底有没有价值?

协议和block的区别

原创 2015年11月20日 20:48:16

协议和block都可以用来不同页面之间的传值,block之前有过详细的说明

协议的话一共有4个步骤,一个是创建协议

@protocol User_Info <NSObject>

@required -(void)Set_User;

@end

分为两种分别是

@required 和 @optional

@optional是可以选择不实现的

@required是必须实现的

第二步是实例化协议的属性

@property (strong, nonatomic) id<User_Info> delegate;

在需要的地方执行

    [self.delegate Set_User];

什么叫做需要的地方呢?就是在你想要在什么时候或者什么事件下触发该协议,那么执行他

所以协议经常用在委托模式,委托其他的地方完成该事件。

第三步是设置执行协议的对象

User.delegate=self
这步容易被忽略,但却很重要,没有这一步的话,编译器不知道他在哪里执行的这个协议

最后就是在设置了协议对象的地方设置事件

-(void)Set_User
{
}

里面就是要设置你要执行的事件了

协议和block用起来感觉差不多,也可能是我接触的代码比较少,不过从执行机制上看,协议的速度更快,因为它是直接在runtime里面增加地址的,让他可以直接查到,而block具体实现机制暂不清楚,不过肯定是比协议复杂的,因为协议是分开的而block是一整块

当然,小项目里面无所谓,用block会更加简单点就是了

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

关于如何使用block实现和协议一样的功能分析

在开发中我们经常会使用到协议来传输数据,不过如果你想成为一名真正有实力的开发者,你想要研读高手的代码,那么在如今的项目中必不可少的都使用了block来尽可能的代替协议实现数据的传递。关于block我不...

几种协议的比较(一)

做为一个程序员,在慢慢进阶的过程中,开源协议也是要知道一些的,这里我转载了几篇不错的关于开源协议的文章,作为参考 原文地址:http://www.cnblogs.com/Wayou/p/how_to_...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

委托和协议的区别

该文章转载于http://blog.csdn.net/jiajiayouba/article/details/21103667 iOS上的协议类似于C#、Java上面的接口,他是从类中抽出来...

几种协议比较(二)

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apach...

数据通信协议的简介(数据通信协议和网络协议有什么区别?)

数据通信协议 Data communication protocol 亦称数据通信控制协议。是为保证数据通信网中通信双方能有效,可靠通信而规定的一系列约定。这些约定包括数据的格式,顺序和速率,数据传输...

协议和协议栈的区别?

协议和协议栈是什么?

图解各种开源协议的异同

开源协议区别

http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

各种远程通信协议分析、比较

https://i.cnblogs.com/EditPosts.aspx?opt=1 Refer To:http://ihyperwin.iteye.com/blog/1627794 在分...

Objective C程序 block代码块 和property协议及Foundation框架

block代码块 和property协议  1.block类型是一个c级别的语法和运行机制,他与标准c函数类似,不同之处在于,它除了有可执行代码以外,还包含了与堆。栈内存绑定的变量,因此block ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)