1.主要是你在iOS里使用 while (true) {} 无线循环时, iOS ARC默认认为你这个方法永远没有执行完,所以不会去主动释放你方法里的对象,这一点和JAVA不一样, 所以很多JAVA开发者转iOS后习惯性的使用while(true){} 导致项目里存在这种内存隐患,导致内存无限增加
----01>添加@autorelesepool{
}
----02>使用nstime做无限循环,arc下会自动释放内存
2.ARC模式下oc对象与非oc对象之间的桥接 非oc对象需要手动释放。
__bridge:不涉及对象所有关系改变 __bridge_transfer:给予 ARC 所有权 __bridge_retained:解除 ARC 所有权 |
解决办法是在dealloc中把WebView的delegate释放。
4.ARC模式下,自动回收只针对Objective-C对象有效,对于使用create,copy,retain等生成的Core Foundation对象还是需要我们手动进行释放的,CFRelease()