IOS开发 为啥要用block
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS开发 为啥要用block相关的知识,希望对你有一定的参考价值。
ios开发 为什么要用block,利用block主要用途是代替delegate吗
我认为block主要是替代selector。对于一个包含少量代码的方法可以放到一个block中而不用重新定义个方法,增加代码的可读性。比如通知中心(NSNotificationCenter)事件的回调(addObserver)可以指定一个函数,也可以直接用block,(@selector或者usingBlock^),如果只要执行简单的几句代码,就可使用后者,省去新定义一个方法的麻烦。
不过使用block时需要注意一些问题,尤其引用计数的问题会导致一些东西不能正常释放,具体需要多看些资料。
跟delegate没什么关系。 参考技术A Block相当于Objective-C的匿名函数,Block允许开发者在两个对象之间将任意的语句当做数据进行传递,往往这要比引用定义在别处的函数直观。另外,block的实现具有封闭性(closure),而又能够很容易获取上下文的相关状态信息,因此ios开发中会用到block。
实际上,block使用了与函数相同的机制,可以像声明函数一样,来声明一个bock变量;可以利用定义一个函数的方法来定义一个block;也可以将block当做一个函数来调用。
iOS开发系列-Block
概述
Block也是一种数据类型,用于保存一段代码。
Block基本使用
Block的声明定义
声明一个block类型的变量
返回值类型(^blockName)(参数类型列表)
定义一个block
^返回值类型(参数列表) { };
Block的定义不管有没有返回值,在定义时返回值类型可以省略。当一个block没有参数时Block定义^后面的括号也可以省略。
// 标准的声明与定义一个block void (^block)() = ^void(){ }; // 定义省略返回值 void (^block)() = ^(){ }; // block没有返回值省略^后面的括号 void (^block)() = ^{ };
以上是关于IOS开发 为啥要用block的主要内容,如果未能解决你的问题,请参考以下文章
手机移动端web开发的时候为啥要用js跳转链接来代替a标签的跳转?
在vue项目开发中, 为啥图片要用require 引入。。。而不是直接写本地路径
开发iOS程序一定要用object-c吗?可以用C/C++么?