美文网首页
Objective-C代码块(Block)实质与实现探究

Objective-C代码块(Block)实质与实现探究

作者: KardelShaw | 来源:发表于2016-12-30 15:45 被阅读0次

本文代码示例多出自《Objective-C高级编程 iOS与OS X多线程和内存管理》,也有多处解释参考原文。也有部分内容参考于《Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》

Block是一种特殊的,可以生存在栈区(叫栈块)、堆区(叫堆块)、以及程序数据区域即全局区(叫全局块)的Objective-C对象。在堆区的Block也有引用计数,适用于ARC的内存管理机制。

clang(LLVM编译器)能把Objective-C转换成可读源代码(C++)的功能:

clang -rewrite-objc 源代码文件名

</br>
因为原文章过长,谁都很难有勇气一口气读完,故把其分为以下几个部分:

1、Block仅用作输出语句的情况

</br>

2、Block截获自动变量的情况

</br>

3、Block截获静态变量的情况

</br>

4、Block中使用__block变量的情况

</br>

5、Block截获对象的情况

</br>

6、Block使用__block�变量,且该变量为对象的情况

</br>

7、Block存储域

</br>

8、__block变量存储域

</br>

9、__block变量的成员变量__forwarding存在的意义

相关文章

网友评论

      本文标题:Objective-C代码块(Block)实质与实现探究

      本文链接:https://www.haomeiwen.com/subject/twkpvttx.html