美文网首页
for循环导致内存泄漏UI线程卡死的问题

for循环导致内存泄漏UI线程卡死的问题

作者: 大师的书 | 来源:发表于2019-05-25 21:09 被阅读0次

今天在做页面的时候,有一个页面很奇怪,一加载UI就卡死。很奇怪而且居然找不到问题在哪。普通死循环的话,Xcode会自动定位到死循环的地方,但这次并没有。

一开始我不知道是什么问题,于是乎我一通找,断点、注释代码,最终也没找到。突然发现内存在慢慢的涨。于是我用Leaks查看了一下,最终发现了罪魁祸首。

罪魁祸首

问题就出在这个for循环上,看到这里我立刻想到,之前有一个数组.count-1导致死循环的问题,肯定就是这个问题了,由于数组.count字符串.length这类长度的单位是无符号整型也就是NSUInteger,在for循环上使用的话,如果遇到数组.count为0,0-1的值结果并不会为-1,而是会变成一个无比大的数,因为NSUInteger是无符号的。所以遇到for循环的话还是要注意一下这些无符号整型的,不然可能出现死循环的严重的后果。

最后再上一个NSIntegerNSUInteger的对比图。

对比图

相关文章

  • for循环导致内存泄漏UI线程卡死的问题

    今天在做页面的时候,有一个页面很奇怪,一加载UI就卡死。很奇怪而且居然找不到问题在哪。普通死循环的话,Xcode会...

  • Android内存泄漏与内存管理工具

    在程序运行过程中,有时会发生内存泄漏的问题,导致程序卡顿或者卡死。 内存泄漏? 简单的说,内存泄漏表示的是不再用到...

  • android 内存性能

    handle引起的内存泄漏 强引用资源引起的内存泄漏 线程导致的内存泄漏 系统学习安卓内存泄露 large hea...

  • 懂这些

    项目整体介绍 1、多线程 线程安全 线程同步 锁 2、内存管理 循环引用,内存泄漏,block 3、性能优化 ...

  • Xcode调试工具

    一.静态内存分析工具 编译阶段查找内存泄漏等问题 1.常见内存泄漏问题 常见的内存泄漏除了循环引用,CoreFou...

  • 性能问题

    1、性能问题:内存,内存泄漏,循环引用UI控件优化流畅性,帧率渲染,透明控件耗时操作电量,发热app大小,缓存dY...

  • Xcode Instruments 检测循环引用的方法

    1.问题 你知道delegate 如果是strong 修饰的话,就会引起循环引用。导致内存释放不掉,内存泄漏。你...

  • 还在用 MVP?快来试试 MVVM框架吧!

    优势 稳定 减少内存泄漏:新手很容易在线程切换的地方写出导致内存泄漏的代码,但如果把线程切换交给框架来做,出错的概...

  • 还在用 MVP?快来试试 MVVM框架吧!

    优势 稳定 减少内存泄漏:新手很容易在线程切换的地方写出导致内存泄漏的代码,但如果把线程切换交给框架来做,出错的概...

  • 多线程的基本概念的理解

    模拟耗时操作 耗时操作对UI的影响 : 会卡死UI / 界面 / 主线程 如何解决耗时操作卡死主线程? 使用多线程...

网友评论

      本文标题:for循环导致内存泄漏UI线程卡死的问题

      本文链接:https://www.haomeiwen.com/subject/iqozzqtx.html