
OC block专栏
文章平均质量分 93
【block编程第一篇】block语法
【block编程第二篇】block捕获变量和对象(当前)
【block编程第三篇】block的内存管理。
【block编程第四篇】block内部实现;
【block编程第五篇】block中如何避免循环引用
hherima
移动互联网,大有可为!APP开发经历:飞信、和4G、搜狐视频、56视频等项目。
展开
-
在多线程情况下,block比delegate有优势。
左边的SHVideoPlayerCaption 代理了播放器的方法叫:messageCallBack(RetObtainSubtitle)ret 如图右边函数。播放器调用messageCallBack是在并发线程。dealloc是在主线程执行。那么,在这样的多线程情况下:如果:执行顺序是1-> 3 -> 2 -> 4。那么第4步则会crash了。Block则可解决这个问题,block会持有了self省的走dealloc了原创 2016-09-29 19:12:36 · 1600 阅读 · 0 评论 -
Effective Objective-C(第37-40条)block在栈上?在堆上?
OC中多线程编程的核心就是block与gcd。这虽然是两种不同的技术,但他们是一并引入的。block是一种可在C、C++及OC代码中使用的“词法闭包”(lexical closure),它极为有用,借此机制,开发者可将代码像对象一样传递,令其在不同环境(context)下运行。在block的范围内,它可以访问到其中的全部变量。 gcd是一种与block有关的技术,它提供了对线程的抽象,而这种抽象基于“派发队列”(dispatch queue)。开发者可将block排入队列中,有gcd负责处理所有调度原创 2014-08-10 15:08:45 · 3966 阅读 · 4 评论 -
【block编程第五篇】block中使用 weak–strong dance 技术避免循环引用
使用 weak–strong dance 技术block 可以直接引用 self,但是要非常小心地在 block 中引用 self。因为在 block 引用 self,可能会导致循环引用。如下例所示:原创 2015-04-27 18:50:19 · 4731 阅读 · 0 评论 -
【block第四篇】实现
-------------------------------------------欢迎查看block连载博客【专栏】--------------------------------------【block编程第一篇】block语法 【block编程第二篇】block捕获变量和对象;【block编程第三篇】block的内存管理。 【block编程第四篇...原创 2014-08-16 22:23:13 · 18710 阅读 · 5 评论 -
【block第三篇】内存管理——如何验证block在栈上,还是堆上
这就需要引入三个名词:● _NSConcretStackBlock● _NSConcretGlobalBlock● _NSConcretMallocBlock正如它们名字说的那样,说明了block的三种存储方式:栈、全局、堆。【在ARC下】:似乎已经没有栈上的block了,要么是全局的,要么是堆上的。有一个特殊情况:如果仅仅定义了block没有赋值给变量的话,仍是在栈上,比如:【在非ARC下】:存在这栈、全局、堆这三种形式。原创 2014-08-16 22:21:31 · 15558 阅读 · 8 评论 -
【block编程第二篇】 block捕获变量和对象
----------------------------------------欢迎查看block连载博客:【专栏】---------------------------------------【block编程第一篇】block语法 【block编程第二篇】block捕获变量和对象(当前)【block编程第三篇】block的内存管理。 【block编程第四篇】blo...原创 2015-04-27 18:50:59 · 5636 阅读 · 0 评论 -
【block编程第一篇】 block编程热点介绍(官方文档翻译的)
源自apple官方,主要分为下面五个文章: block介绍(Introduction)点击打开原文1. 开始使用block(Getting Started with Blocks)2. block概念综述(Conceptual Overview)3. 声明和创建block(Declaring and Creating Blocks)4. block和变量(Blocks and翻译 2013-12-16 16:12:47 · 6502 阅读 · 4 评论