协议和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 和 inline 的区别

  • 2012年09月27日 15:22
  • 33KB
  • 下载

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

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

objective-c---ARC、block、协议(protocol)

ARCARC概念 Automatic Reference Counting :自动引用计数 ARC的判断准则 只要没有强指针指向对象,就会释放对象 指针分为两种 1、强指针:默认情况下,所有的指针...
  • ikj1235
  • ikj1235
  • 2015年03月24日 21:38
  • 263

Objective-C加强-block代码块和protocol协议

一、block代码块 block是一个变量,这个变量类似c语言中的函数指针,在回调场合用的特别多。它可以封装代码,有返回值有形参 //没有返回值没有形参的block void (^myblock)()...

iOS7应用开发 第7、8集 协议、block、动画

一、协议(protocal)和代理(delegate)1、协议和代理存在的意义协议和代理是模块化开发和封装的产物。 先讲一个小故事帮助大家理解: 老王有一家餐馆,刚刚开始的时候规模很小,...

OC--block,@protocol协议

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

OC语言BLOCK和协议

转载:http://www.cnblogs.com/wendingding/p/3709604.html 一、BOLCK (一)简介 BLOCK是什么?苹果推荐的类型...

黑马程序员-----oc语言学习笔记之block和协议

------Java培训、Android培训、iOS培训、.Net培训>、期待与您交流! -------   oc语言block和协议 一、block 1、block基本概念 block是...

【黑马程序员】---ARC、block类型和protocol协议总结

------- android培训、java培训、期待与您交流! ---------- ARC、block类型和protocol协议总结 1.ARC ARC是自iOS 5之后...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:协议和block的区别
举报原因:
原因补充:

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