ios开发怎么给childviewcontroller
展开全部
1.静态分析
通过静态分析可以最初步的了解到代码的一些不规范的地方或者是茄贺存在的内存泄漏,这是第一步对内存泄漏的检测。当然有一些警告并不是关心的可以略过。
2.通过instruments来检查内存泄漏
这个方法能粗略的定位在哪里发生了内存泄漏。方法是完成一个循环操作,如果内存增长为0就证明程序在该次循环操作中不存在内存泄漏,如果内存增长不为0那证明有可能存在内存泄漏,当然具体问题需要具体分析。
3.代码测试内存泄漏
在做这项工作之前要注意一下,在dealloc的方法中是否已经释放了该对象所拥有的所有对象。观察对象的生成和销毁是否配对。准确的说就是init(创建对象的方法)和dealloc是否会被成对触发(简单说来就是走一次创建对象就有走一次dealloc该对象)。
下面是遇到的一些比较隐秘的造成内存泄漏的情况:
1.两个对象互相拥有凯纳销:也就是说对象a里面retain/addSubview了b对象,b对盯游象同时也retain/addSubView了a对象。注意:delegate不要用retain属性,要用assign属性也会导致互相拥有。
2.有时候需要用removeFromSuperView来释放:具体说明,也许a对象拥有一个b对象,b对象add到了c对象上,而在设计中b对象的生命周期应该和a对象相同;这时候只一句[b release]/self.b =
通过静态分析可以最初步的了解到代码的一些不规范的地方或者是茄贺存在的内存泄漏,这是第一步对内存泄漏的检测。当然有一些警告并不是关心的可以略过。
2.通过instruments来检查内存泄漏
这个方法能粗略的定位在哪里发生了内存泄漏。方法是完成一个循环操作,如果内存增长为0就证明程序在该次循环操作中不存在内存泄漏,如果内存增长不为0那证明有可能存在内存泄漏,当然具体问题需要具体分析。
3.代码测试内存泄漏
在做这项工作之前要注意一下,在dealloc的方法中是否已经释放了该对象所拥有的所有对象。观察对象的生成和销毁是否配对。准确的说就是init(创建对象的方法)和dealloc是否会被成对触发(简单说来就是走一次创建对象就有走一次dealloc该对象)。
下面是遇到的一些比较隐秘的造成内存泄漏的情况:
1.两个对象互相拥有凯纳销:也就是说对象a里面retain/addSubview了b对象,b对盯游象同时也retain/addSubView了a对象。注意:delegate不要用retain属性,要用assign属性也会导致互相拥有。
2.有时候需要用removeFromSuperView来释放:具体说明,也许a对象拥有一个b对象,b对象add到了c对象上,而在设计中b对象的生命周期应该和a对象相同;这时候只一句[b release]/self.b =
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询