内存优化处理

内存处理:

  1. 使用分析器,修改泄露的问题
  2. 避免循坏引用,dealloc、rootviewcontroller、block 的self 等参数
  3. 确定dealloc 方法按照预期调用了
  4. 基本上没什么好说了,你已经做了你该做的

——显然UIKit本身还做了一些其它的你不需要知道的事情,也许是为了优化整个流程,也许是对特定的控件做了缓存,等等


细节:

去除循环引用

如 new.delegate = self (weak)

.rootViewController = self;


block 相关

  • 不要在 block 中引用self,而是使用

__block id copy_self = self;

  • block 只会对栈进行只读拷贝

只能使用,不能写,如 

int x = 1

^{

x=3 //将报错

}

而使用

__block int x = 1;

^{

x=3 //可以的

}

The last:

无论APP怎么表现,都需要保证更好地质量。在此基础上,多花时间在一些feature上。同时可以使用一些自带工具监测内存如 Allocation 、Leaks 和zoombies。

引用neogui的一段话:你的代码基本没什么问题, 所以不要为了64 Bytes纠结,你push、pop一次才leak这么点内存,用户点按钮再回来1000次也才64K而已。找回这64 Bytes不会给你的用户带来任何惊喜,但是如果你多花时间在一些feature上,你的用户会很感激你,也会很愿意掏皮夹


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值