需要:pod 'YYKit' 在block语句块中,如果需引用self,而self对象中又持有block对象,就会造成循环引用循环引用(retain cycle),导致内存泄露,比如以下代码 一般我们是这么解决的,使用一个__weal修饰的weakSelf变量指向self对象,在block中使用we ...
分类:
其他好文 时间:
2018-04-18 10:27:36
阅读次数:
211
@weakify _weak _weak @weakify(self); // RAC _weak的self_weak_变量 解决循环引用 问题: weakSelf是弱引用,会被释放 问题: weakSelf是弱引用,会被释放 循环引用的分类 父子对象关系 父子对象关系 当block和闭包包含在类的 ...
分类:
其他好文 时间:
2017-12-30 22:36:31
阅读次数:
126
lldb的问题属于调试器: 下面命令用于在调试时设值 e self.apiModel.apiParams = [NSDictionary dictionaryWithObjectsAndKeys:@"一切", @"content", nil] @weakify(self) 属于便捷语法 #defin ...
分类:
数据库 时间:
2017-12-14 11:56:30
阅读次数:
150
http://www.jianshu.com/p/3d6c4416db5e 今天来讲weakify strongify。 首先看一下实现的方式: 方式1: 传统写法: #ifndef weakify #if __has_feature(objc_arc) #define weakify( x ) \ ...
分类:
其他好文 时间:
2017-06-20 15:28:27
阅读次数:
194
0.很长的前言 1.问题 2.RAC是怎么解决的 2.weakify、strongify的定义 预备知识 一层层展开weakify 3.RAC装逼宏 metamacro_argcount 的定义 metamacro_foreach_cxt 的定义 RAC的宏装逼过程总结 0.很长的前言 1.问题 2 ...
分类:
其他好文 时间:
2017-04-28 11:17:55
阅读次数:
287
1、创建block用copy修饰,拷贝到堆上 2、之前一直用这种写法,但会碰到提前释放的状态 __weak typeof(self)wakeself = self; 3、就用弱指针指向self,在block内部对weakSelf产生一个强引用,就解决了提前释放的问题 @weakify(self); ...
分类:
其他好文 时间:
2017-04-24 17:19:59
阅读次数:
134
前言 相信大部分见过 @weakify 和 @strongify 的开发者都会喜欢上这两个宏。但是很多人只知道它的强大威力,却没有意识到在特定环境下的危险性。 本文将通过代码测试的方式告诉读者,如何正确地使用这两个的宏。 @weakify 和 @strongify 本文意在说明其危险性,所以不会全面 ...
分类:
其他好文 时间:
2017-01-16 21:34:23
阅读次数:
215
FRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样: 当a的值或者b的值发生变化时,c的值会自动响应a的值或b的值变化的信号,自动更正自己的值,类似这种编程思想就称为FRP。 FRP提供了一种信号机制来实现这样的 ...
分类:
移动开发 时间:
2016-11-17 10:58:38
阅读次数:
349
前言 相信大部分见过 @weakify 和 @strongify 的开发者都会喜欢上这两个宏。但是很多人只知道它的强大威力,却没有意识到在特定环境下的危险性。 本文将通过代码测试的方式告诉读者,如何正确地使用这两个的宏。 @weakify 和 @strongify 本文意在说明其危险性,所以不会全面 ...
分类:
其他好文 时间:
2016-09-14 09:39:41
阅读次数:
166
深入研究Block捕获外部变量和__block实现原理 前言 在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理。然而实际使用Block过程中,还是会遇到一些问题,比如Retain Circle的问题。 目录 1.Retain Circle的由来 2.weak、stro ...
分类:
其他好文 时间:
2016-09-09 08:49:42
阅读次数:
410