block
khlljm
这个作者很懒,什么都没留下…
展开
-
iOS: ARC和非ARC下使用Block属性的问题
1. Block的声明和线程安全 Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC下返回Block)。 另一个需要注意的问题是关于线程安全,在声明Block属性时需要确认“在调用Block时另一个线程有没有可能去修改Block?”这个问题,如果确定不会有这种情况发生的转载 2015-03-15 18:25:53 · 387 阅读 · 0 评论 -
iOS: 非ARC下返回Block
首先,对于没有引用外部变量的Block,无论在ARC还是非ARC下,类型都是__NSGlobalBlock__,这种类型的block可以理解成一种全局的block,不需要考虑作用域问题。同时,对他进行Copy或者Retain操作也是无效的,比如这样一个返回Block的函数: typedef int(^MyBlock)(); MyBlock func() { return ^{ ret转载 2015-03-15 18:24:24 · 398 阅读 · 0 评论 -
Objective-C学习之旅(十)----Blocks语法
一、Blocks Block是一个C Level的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从IOS4.0开始就很好地支持Blocks。Blocks主要用在一些回调函数的用法上,2个对象通信需要一些回调的时候,比如说2个对象在运行,我们需要知道其中一个对象什么时候完成,我们就需要一个回调函数,之前我们用代理,但是有些小的地方用代理大材小转载 2015-03-24 22:27:11 · 318 阅读 · 0 评论 -
对Objective-C中Block的追探
原文链接 最近看了很多block相关的文章,都在说block怎么用,写的都很精彩。 blogs: Block编程值得注意的那些事儿 (使用相关) http://www.cocoachina.com/macdev/cocoa/2013/0527/6285.html iOS中block实现的探究(内部结构分析) http://blog.csdn.net/jasonblog/arti转载 2015-05-28 14:54:56 · 314 阅读 · 0 评论