博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存泄露的点滴
阅读量:6905 次
发布时间:2019-06-27

本文共 723 字,大约阅读时间需要 2 分钟。

hot3.png

内存泄露

普通 普通的就是使用自动释放池和一段使用strong,一端使用weak

block 防止循环引用, 使用__weak

CG 创建的同时,记得使用完成之后释放 CGRealse

通知  dealloc

NSTimer  

以下代码的问题:

@interface SvCheatYourself () {    NSTimer *_timer;}@end@implementation SvCheatYourself- (id)init {    self = [super init];    if (self) {        _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(testTimer:) userInfo:nil repeats:YES];    }    return self;}- (void)dealloc {    [_timer invalidate];}- (void)testTimer:(NSTimer*)timer{    NSLog(@"haha!");}

1)timer都会对它的target进行retain,对于重复性的timer,除非手动关闭,否则对象不会释放,场景:导航控制器关联的控制器无法销毁 2)NSTimer要加到异步线程中,防止线程繁忙导致定时器失准

3)timer必须加入到runloop中才会有效,主线程runloop默认开启,异步线程手动启动

4)注意runloop模式

转载于:https://my.oschina.net/venn0126/blog/550760

你可能感兴趣的文章
动态规划之经典例题
查看>>
gitlab web hooks 应用
查看>>
STM32的停机模式与唤醒
查看>>
安全运维之端口安全
查看>>
十月百度,阿里巴巴,迅雷搜狗最新面试七十题(更新至10.17)
查看>>
java程序c:forEach相关实际应用
查看>>
PS命令
查看>>
IP地址规划
查看>>
在ssh项目中导出excel
查看>>
struts-上传
查看>>
javascript的for in
查看>>
MongoDB通过Save修改数据
查看>>
大容量导入和导出数据 -- 介绍
查看>>
我的友情链接
查看>>
第三次作业
查看>>
基于MariaDB-10 半同步复制数据的配置解析
查看>>
关于虚拟机安装linux的发生的网络不通的问题。及解决方案
查看>>
Memcache的简单笔记
查看>>
忘记密码
查看>>
CentOS虚拟机静态IP配置过程及问题分析
查看>>