1). 在block内部使用外部指针且会造成循环引用情况下,需要用__week修饰外部指针: __weak typeof(self) weakSelf = self; 2). 在block内部如果调用了延时函数还使用弱指针会取不到该指针,因为已经被销毁了,需要在block内部再将弱指针重新强引用一下 ...
分类:
其他好文 时间:
2019-02-28 01:15:10
阅读次数:
209
需要:pod 'YYKit' 在block语句块中,如果需引用self,而self对象中又持有block对象,就会造成循环引用循环引用(retain cycle),导致内存泄露,比如以下代码 一般我们是这么解决的,使用一个__weal修饰的weakSelf变量指向self对象,在block中使用we ...
分类:
其他好文 时间:
2018-04-18 10:27:36
阅读次数:
211
某个cell发生数据变化,实时刷新,把变化的cell的indexPath作为参数: 比如微信的朋友圈点赞和评论 [weakSelf.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimati... ...
分类:
其他好文 时间:
2018-04-17 12:01:40
阅读次数:
169
SDWebImage 中有一段源码: 我们用的比较多的 解决循环引用的问题, 在block中 用到对象内部的属性、实例变量的时候要用weakSelf 访问,但是为什么block 内部又用到strongSelf 呢? 大部分情况下,只在block中使用weakSelf 是没有问题的,通常情况下我们只在 ...
分类:
其他好文 时间:
2018-04-05 14:37:07
阅读次数:
230
@weakify _weak _weak @weakify(self); // RAC _weak的self_weak_变量 解决循环引用 问题: weakSelf是弱引用,会被释放 问题: weakSelf是弱引用,会被释放 循环引用的分类 父子对象关系 父子对象关系 当block和闭包包含在类的 ...
分类:
其他好文 时间:
2017-12-30 22:36:31
阅读次数:
126
1.第三方框架使用不当 比如AFNetworking的内存泄漏,使用单例模式解决 2.block的循环引用 weakself和strongself配合使用 3.delegate循环引用问题 使用weak修饰即可 4.NSTimer循环引用 注意NSTimer的销毁时机 5.非OC对象内存处理 使用完 ...
分类:
移动开发 时间:
2017-12-27 14:20:51
阅读次数:
256
今天无意这中遇到一个奇怪的崩溃,先上引起崩溃的代码: - (void)dealloc { __weak __typeof(self)weak_self = self; NSLog(@"%@", weak_self); } 当执行到dealloc的时候,程序就crash 掉了。崩溃信息如下: objc ...
分类:
其他好文 时间:
2017-08-30 22:28:18
阅读次数:
239
最近练习使用NSoperation模拟SDWebImage下载图片,发生了崩溃的问题,还专门写博客记录这件事情: http://www.cnblogs.com/tufei7/p/7074030.html, 当时以为是因为weakSelf和StrongSelf造成的崩溃, 然而我尽管用了StrongS ...
分类:
编程语言 时间:
2017-07-01 19:28:59
阅读次数:
320
cell下载图片的时候会崩溃: 什么时候使用weakSelf? 参考这篇博客: http://ios.jobbole.com/88708/ block避免循环循环引用 什么时候使用strongSelf? 在block中多次使用Self的属性,方法,为了避免self变成nil(因为weak修饰的变量在 ...
分类:
其他好文 时间:
2017-06-24 19:48:12
阅读次数:
125
一、为什么在使用部分第三方SDK中block回调不需要使用weakSelf,例如AFN AFN在封装的时候,重写了setCompletionBlock方法,在回调后直接将completionBlock置为nil,打破了循环引用 二、Block为什么要用copy来修饰 默认情况下,block是存档在栈 ...
分类:
移动开发 时间:
2017-05-07 01:00:16
阅读次数:
201