Ios开发随笔之block(一)
2015-06-08 15:28
260 查看
ios开发随笔之block(一)
今天主要介绍一下关于ios中block的用法,当然介绍的比较浅显,以后还会慢慢的深入,block是C级别的语法和运行特性,是一个独立函数块,但是它绝对比C的更有优势,无论是在堆内存还是栈内存的引用都是相当灵活的,我们可以通过block作为一个参数传值给另一个函数或者另一个block,同时又可以作为一个闭包来访问其他函数内部的变量。来看一个最简单的block:int value = 2; int (^testBlock)(int) = ^(int num){ return value*num; }
在上面这个例子中,我们先在block外面定义了一个int型的变量,其次是block,我们定义了一个返回型为int型,block名为testBlcok,接收参数为int型的这么一个block,是不是看起来像C中去定义一个子函数那样,它能将它所在的函数中的一个变量value与他自身的接收的参数num进行运算并且将值进行了返回,然而这使这个block并不执行,为什么呢?应为这里你只是定义了一个block,然而并没有去调用它。下面给出完整的例子:
- (void)function
{
int value = 2; int (^testBlock)(int) = ^(int num){ return value*num; }
int ret = testBlock(6);
NSLog(@"ret = %d",ret);
}
结果是:ret = 12;
从上面的例子你也许大概知道block是怎么一回事了;
你有可能会说这不就和回调方法一样吗?是的,它省去你考虑在哪去写回调方法的时间,你只需要在你调用函数时直接写后续的处理过程即可,是不是很方便。因此block在很多场合下都有被应用,比如:某个任务结束时的回调处理,对消息进行监听时回调处理,对图动画及变换时的回调处理,错误消息的回调处理,以及枚举,排序都用到了block。
就先写到这里吧,这里只是一个简单的介绍下block,随后的随笔我也会详细介绍block具体怎么用们以及在在用的时候需要注意的地方。
(PS:原创不易,转载的时候请标记一下出处)
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- ios中图像进行压缩方法汇总
- IOS检测指定路径的文件是否存在
- iOS、Mac OS X系统中编程实现汉字转拼音的方法(超级简单)