block
普通网友
这个作者很懒,什么都没留下…
展开
-
关于Block
Block简介 Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理 要么导致return cycle内存泄漏要么内存被提前释放导致crash。 Block的使用很像函数指针,不过与函数最大的不同是:Bloc原创 2015-08-19 11:24:52 · 268 阅读 · 1 评论 -
block的循环引用
虽然在ios中使用了ARC自动管理内存,但是一旦在block中出现了循环引用还是会导致内存泄露的风险。下面copy一下循环引用的概念: 循环引用指两个对象相互强引用了对方,即retain了对方,从而导致谁也释放不了谁的内存泄露问题。如声明一个delegate时一般用assign而不能用retain或strong,因为你一旦那么做了,很大可能引起循环引用。 对于block来说,在拷贝到堆上的时候,原创 2015-08-19 10:33:06 · 321 阅读 · 1 评论