美文网首页
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线程卡死的问题

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