1.主要是你在iOS里使用 while (true) {} 无线循环时, iOS ARC默认认为你这个方法永远没有执行完,所以不会去主动释放你方法里的对象,这一点和JAVA不一样, 所以很多JAVA开发者转iOS后习惯性的使用while(true){}
ARC下内存需要做的手动管理
最新推荐文章于 2018-07-28 03:18:17 发布
在iOS的ARC环境下,使用`while (true) {}`可能导致内存无限增长,因为ARC认为方法未结束而不释放对象。为解决此问题,可以采用`@autoreleasepool`或者用`NSTimer`创建无限循环。另外,ARC仅自动回收Objective-C对象,对于Core Foundation对象如CF创建的,仍需手动调用`CFRelease()`进行释放。
摘要由CSDN通过智能技术生成