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语言中的组合运算符。


深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用

前言 在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理。然而实际使用Block过程中,还是会遇到一些问题,比如Retain Circle的问题。 目录 1.R...
  • qq_30513483
  • qq_30513483
  • 2016年09月19日 17:15
  • 2042

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

http://www.cnblogs.com/wanyakun/p/5198492.html 首先要说说什么时候使用weakSelf和strongSelf。 下面引用一篇博客《到底...
  • jeffasd
  • jeffasd
  • 2016年03月28日 16:25
  • 356

iOS 面试题(3.):为什么 weakSelf 需要配合 strong self 使用

问题 继续回答昨天的问题第二问。 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: __weak ...
  • huanglinxiao
  • huanglinxiao
  • 2016年12月03日 17:14
  • 1537

@weakify, @strongify 使用

@weakify @strongify。 首先看一下实现的方式: 方式1: 传统写法: #ifndef weakify #if __has_feature(objc_arc) #define w...
  • u014600626
  • u014600626
  • 2016年09月28日 14:42
  • 384

Block中weak/strong self的用法

在用到block时,我们经常会有这样一种用法//请忽略不重要的代码行 __weak __typeof(self)weakSelf = self; blk_t blk = ^() { __str...
  • u013046795
  • u013046795
  • 2016年03月03日 16:20
  • 4395

iOS中block的详解weakSelf、strongSelf <转自唐巧>

1我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码:__weak typeof(self) weakSelf = ...
  • xgb742951920
  • xgb742951920
  • 2017年04月05日 15:41
  • 2788

到底什么时候才需要在ObjC的Block中使用weakSelf/strongSelf

Objective C 的 Block 是一个很实用的语法,特别是与GCD结合使用,可以很方便地实现并发、异步任务。但是,如果使用不当,Block 也会引起一些循环引用问题(retain cycle)...
  • lxlzy
  • lxlzy
  • 2016年04月26日 17:03
  • 909

block里的self、weakSelf、strongSelf

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

@weakify @strongify 对 __weak typeof(self) _self = self;的宏定义

在YYKit 或是其他地方中我们可以看到@weakify  @strongify用法,其实他们是对__weak typeof(self) _self = self;等的宏定义,如下面3种写法其实是一样...
  • callzjy
  • callzjy
  • 2017年01月26日 12:15
  • 604

OC的Block中使用weakSelf/strongSelf

OC的Block中使用weakSelf/strongSelf 在OC的block中如果使用self的话会引起循环引用,也就是说,在block中直接使用self的话会被强引用,解决方案是使用 we...
  • amoslyc
  • amoslyc
  • 2016年08月06日 15:22
  • 907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify
举报原因:
原因补充:

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