我是 iOS 5 和 ARC 的新手,所以请原谅我的愚蠢问题。
如果我们在我们的项目中使用 ARC,是否意味着根本不会有任何内存泄漏。
如果使用ARC,是否需要使用Instruments检测内存泄漏和NSZombies?
最佳答案
ARC 将帮助您消除某些类型的泄漏,因为您不会忘记release
或autorelease
单个对象。例如,这种类型的错误变得不可能:
myLabel.text = [[NSString alloc] initWithFormat:@"%d", 17];
// oops, just leaked that NSString!
但是,ARC 不会消除由保留循环引起的泄漏。消除保留循环仍然取决于您,方法是使用弱引用或在循环泄漏之前手动中断循环。例如,随着我们开始更多地使用 block , block /自保留循环变得更加普遍。 Transitioning to ARC Release Notes讨论如何使用弱引用来避免这些循环。
关于iphone - 自动引用计数 (ARC) 对内存泄漏的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8950989/