我是 iOS 开发新手。在 iOS 6 中,我是否仍需要在 dealloc
中释放我的属性?
如果没有,我保留的属性如何释放?它是自动完成的吗?
需要一些指导。对不起,如果这是一个愚蠢的问题..
例如,当我这样做时:
- (void)dealloc
{
[super dealloc];
}
@end
我收到类似的消息:
ARC forbids explicit message send of 'dealloc'
最佳答案
答案是肯定的,引用计数内存管理仍在使用,retain
、release
、autorelease
和 dealloc 方法
仍在使用中。
您需要问的问题是:“我需要使用它们吗?”
这个答案取决于您是否启用了 ARC。 ARC 代表自动引用计数,自 iOS 5 以来在新的 iOS 项目中默认启用。ARC 是 LLVM 编译器的一项功能,它会根据众所周知的 cococa 编程约定自动将所需的保留/释放/自动释放方法调用添加到您的代码中.
编译器告诉您“ARC 禁止显式消息.. 等”的原因是因为它正在为您管理这些调用 - 这是一个全有或全无的交易。 ARC 管理所有的内存管理,或者一个都不管理。
可以在每个项目或每个文件的基础上启用或禁用 ARC。支持 ARC 的代码与非支持 ARC 的代码兼容。
我建议您阅读 Transitioning to ARC Release Notes如果您渴望了解 ARC 为您做些什么。
然后我会观看来自 developer.apple.com/videos 的所有自动引用计数视频.
最后,如果您愿意,请通读官方 LLVM documentation on ARC .
关于ios - 从 iOS 6 开始, objective-c 选择器 dealloc 和 release 是否仍在使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13133317/