发布方法何时发生?当我完成它时,我总是释放内存分配,现在看来该方法已被弃用。或者它可能不适用于某些对象?
无论如何,这就是我所做的:
Customer *aCustomer = [[Customer alloc] init];
...
[aCustomer release];
我在那里得到一个错误...任何人都在关心为什么我现在因为释放内存而得到错误?错误消息是:
'release'in unavailable:在自动引用中不可用 计数模式ARC禁止显式消息发送'release'
答案 0 :(得分:5)
如果您启用了'ARC',那么您不需要release
一个对象。这将由编译器处理。 retain
,release
和autorelease
都由编译器处理。
修改强> 您可以从here
了解更多信息此外,已存在SO thread。请通过那个。
答案 1 :(得分:1)
要自己管理内存,请转到“构建设置”并将标记“Objective-C自动引用计数”设置为“否”(它位于“Apple LLVM编译器”下)
答案 2 :(得分:1)
Objective-C的自动引用计数(ARC)使内存成为可能 管理编译器的工作。通过使用新的Apple启用ARC LLVM编译器,您永远不需要再次键入retain或release, 大大简化了开发过程,同时减少了开发过程 崩溃和内存泄漏。编译器完全了解 你的对象,并在它不再是瞬间释放它们 使用,所以应用程序运行速度与以往一样快,可预测,流畅 性能
考虑为您的项目使用ARC(自动保留计数)。有一个重构将转换当前项目。