修改object-c的程序,关键的问题都是内存泄露的问题。通常来讲,调测内存泄漏的方法,主要是按照如下三个步骤进行,这样可以比较高效的定位问题。
第一步,首先使用build setting当中,设定NSZOMBIEENALBED 为yes,这样做的目的是启动告警,是否访问了提前释放的对象。
第二步,使用build and analyze, 这样做的目的是分析,是否有需要释放的对象,结果在使用过程中没有释放掉。
第三步,上述方法都是用了之后,还不够,将采用终极方法,instrument。通过instrument可以观察到内存泄露的具体位置和方法。
关于instrument的使用,本人只做简单介绍,博主认为简单的使用,已经够用了。
1、编写程序。
2、菜单栏中的,Procude--》 profile,此时,instrument会运行,此时点击内存,然后leak,就可以观察了。
3、然后点击 “停止” ,可以停止观察,主要分为两个部分,allocation,是内存的分配情况,而leak则是实际的内存泄露情况。
4、点击,工具条,切换为call tree,然后在左边的列表中,选择,invert call tree,show obj-c only,hide system libraries,三个选项即可。
当存在内存泄露时,其实可以直接跳转到出现内存泄露的位置。
注意:
上述描述,是以xcode4 为基础的。xcode3,运行的是,run菜单下,查找。