作家
登录

浅谈iOS Crash(二)

作者: 来源: 2017-07-25 14:27:13 阅读 我要评论

3、代码中的留意事项

检查应用assgin或 unsafe_unretained 润饰指向OC对象的指针 和 Core Foundation等底层操作。

三、内存泄漏(Memory Leak)

1、概述

  • 内存泄漏是指没有释放掉落不再引用对象的内存。即便ARC帮我们解决很多麻烦,然则内存泄漏问题依然比较多;一般开辟停止后,都要做一些根本的内存泄漏排查工作。
  • 内存泄漏排查,一般采取Analyzer(静态分析) + Leaks + MLeaksFinder (第三方对象)

2-1、排查之静态分析(Analyzer)

  • Xcode供给的 Analyzer可以在法度榜样没运行的时刻,经由过程分析代码高低文的语法构造和内存情况,找出代码中潜在缺点,如内存泄漏、未应用函数和变量等。选中Product->Analyze(快捷键command+shift+B)可以应用了。
  • Analyzer重要分析四种问题:

1) 逻辑缺点:拜访空指针或未初始化的变量等;

2) 内存治理缺点:如内存泄漏等;Core Foundation不支撑ARC

3) 声明缺点:大年夜未应用过的变量;

4) API调用缺点:未包含应用的库和框架。

  • Analyzer履行后,常见的警告类型有:

1)内存警告(Memory)

eg:

Allocation界面Mark Generation下显示.png

分析:Analyzer检查出来内存泄漏,比较常见的就是CG、CF开首的内存泄漏,内存申请,忘记释放了。还有一种是,C申请的内存,没有配对应用new delete, malloc free。

2)无效数据警告(Dead store)

eg:

  1. - (UIImage *)clipImageWithRect:(CGRect)rect{ 
  2.  
  3.   
  4.  
  5.   CGFloat scale = self.scale; 
  6.  
  7.   CGImageRef clipImageRef = CGImageCreateWithImageInRect(self.CGImage, 
  8.  
  9.                                                     CGRectMake(rect.origin.x * scale, 
  10.  
  11.                                                                rect.origin.y  * scale, 
  12.  
  13.                                                                rect.size.width * scale, 
  14.  
  15.                                                                rect.size.height * scale)); 
  16.  
  17.   
  18.  
  19.   CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(clipImageRef)/scale, CGImageGetHeight(clipImageRef)/scale); 
  20.  
  21.   UIGraphicsBeginImageContextWithOptions(smallBounds.size, YES, scale); 
  22.  
  23.   CGContextRef context = UIGraphicsGetCurrentContext(); 
  24.  
  25.   
  26.  
  27.   CGContextTranslateCTM(context, 0, smallBounds.size.height); 
  28.  
  29.   CGContextScaleCTM(context, 1.0, -1.0); 

      推荐阅读

      深度学习:简单而有局限性的求解方式

    深度进修:几何视角关于深度进修最令人吃惊的事实莫过于它的简单程度。10 年前,没人想到我们会应用简单的梯度降低参数模型在机械认知范畴取得如斯卓越的成就。如今,只须要在足够多的样>>>详细阅读


    本文标题:浅谈iOS Crash(二)

    地址:http://www.17bianji.com/lsqh/36391.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)