ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify

转载 2016年06月01日 15:05:50

首先要说说什么时候使用weakSelf和strongSelf。

下面引用一篇博客《到底什么时候才需要在ObjC的Block中使用weakSelf/strongSelf》的内容:

http://blog.lessfun.com/blog/2014/11/22/when-should-use-weakself-and-strongself-in-objc-block/


-------------------------------分割线---------------------------------------------


以上内容知道了我们为什么要用weakSelf和strongSelf, 为了简单实用一般会定义成宏weakify和strongify,如下:

使用过RAC的同学应该都知道@weakify和@strongify,这两个宏在RAC中是已经定义好的,可以直接用,属于比较牛逼的写法。这两个宏一定成对出现,先@weakify再@strongify.可以很好的管理Block内部对self的引用。可以一步步点开发现其实使用到了C语言中的组合运算符。


相关文章推荐

iOS Block

一. Block简述   Block作为C语言的扩展,但是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理 ...

在Block中一起使用weakSelf与strongSelf的含义

为了防止循环引用,我们都会声明一个弱引用在block中使用, 那么weakSelf与strongSelf一起使用目的是什么呢? 首先先定义2个宏:#define WeakSelf(type) ...
  • zxw_xzr
  • zxw_xzr
  • 2017年05月18日 14:26
  • 184

IOS Block 的使用 weakSelf strongSelf

IOS Block 的使用 weakSelf strongSelf
  • phyky
  • phyky
  • 2017年07月06日 10:52
  • 95

深入分析 Objective-C block、weakself、strongself 实现原理

本文转自:http://www.jianshu.com/p/a5dd014edb13 Block是我们在日常OC编码中经常使用的特性,它可以非常便捷高效的编写和组织代码,可以让异步调用的代码更加...
  • pwf2006
  • pwf2006
  • 2017年03月27日 10:15
  • 330

block里的self、weakSelf、strongSelf

ARC下,关于block里面使用self、weakSelf、strongSelf,理解一直没有特别的透彻,今天花时间研究了一下,总结如下:   其实一共就涉及到两个问题: 1.是否循...

文MRC/ARC通用的weakify和strongify

/** * 强弱引用转换,用于解决代码块(block)与强引用self之间的循环引用问题 * 调用方式: `@weakify_self`实现弱引用转换,`@strongify_self`实现强引用转换...

@weakify和@strongify

提到OC中的block,它像函数指针,当然了,我们知道OC其实都是结构体,所以也就是结构体指针了,我们暂不讨论LLVM的Clang前端是如何转换OC代码的。 一般来说,引入ARC后,出现内存...

Reactive Cocoa中@weakify和@strongify实现分析

使用rac的都知道@weakify和@strongify是在它扩库libextobjc中的一个宏,通过他可以实现__weak和__strong的效果,那它使怎么实现的呢。打开xcode找到produc...

__strong typeof(self) strongself = weakself

//创建ViewController控制器 #import @interface ViewController : UIViewController @end #import "ViewCont...
  • SHJSir
  • SHJSir
  • 2016年09月27日 11:17
  • 591

关于block 中 何时使用 __weak/__block MyViewController * weakSelf 分析

说到block .想听我废话下它的基础。 block 是一个闭包函数。所谓闭包就是   引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。...
  • Andy__M
  • Andy__M
  • 2014年11月29日 17:52
  • 347
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify
举报原因:
原因补充:

(最多只允许输入30个字)