不推荐使用release方法

时间:2012-01-30 08:30:01

标签: iphone objective-c ios5 automatic-ref-counting

发布方法何时发生?当我完成它时,我总是释放内存分配,现在看来该方法已被弃用。或者它可能不适用于某些对象?

无论如何,这就是我所做的:

Customer *aCustomer = [[Customer alloc] init];
...
[aCustomer release];

我在那里得到一个错误...任何人都在关心为什么我现在因为释放内存而得到错误?错误消息是:

  

'release'in unavailable:在自动引用中不可用   计数模式ARC禁止显式消息发送'release'

3 个答案:

答案 0 :(得分:5)

如果您启用了'ARC',那么您不需要release一个对象。这将由编译器处理。 retainreleaseautorelease都由编译器处理。

修改 您可以从here

了解更多信息

此外,已存在SO thread。请通过那个。

答案 1 :(得分:1)

要自己管理内存,请转到“构建设置”并将标记“Objective-C自动引用计数”设置为“否”(它位于“Apple LLVM编译器”下)

答案 2 :(得分:1)

  

Objective-C的自动引用计数(ARC)使内存成为可能   管理编译器的工作。通过使用新的Apple启用ARC   LLVM编译器,您永远不需要再次键入retain或release,   大大简化了开发过程,同时减少了开发过程   崩溃和内存泄漏。编译器完全了解   你的对象,并在它不再是瞬间释放它们   使用,所以应用程序运行速度与以往一样快,可预测,流畅   性能

- iOS 5 for Developers

考虑为您的项目使用ARC(自动保留计数)。有一个重构将转换当前项目。