我是新的 iOS 开发。我还需要dealloc
在 iOS 6 中发布我的属性吗?
如果没有,我的保留财产如何释放?它是自动完成的吗?
在这方面需要一些指导。对不起,如果这是一个愚蠢的问题..
例如,当我这样做时:
- (void)dealloc
{
[super dealloc];
}
@end
我收到类似于以下内容的消息:
ARC forbids explicit message send of 'dealloc'
我是新的 iOS 开发。我还需要dealloc
在 iOS 6 中发布我的属性吗?
如果没有,我的保留财产如何释放?它是自动完成的吗?
在这方面需要一些指导。对不起,如果这是一个愚蠢的问题..
例如,当我这样做时:
- (void)dealloc
{
[super dealloc];
}
@end
我收到类似于以下内容的消息:
ARC forbids explicit message send of 'dealloc'
答案是肯定的,引用计数内存管理仍在使用中,方法、、retain
和仍在使用中。release
autorelease
dealloc
您需要问的问题是:“我需要使用它们吗?”
该答案取决于您是否启用了 ARC。ARC 代表 Automatic Reference Counting,自 iOS 5 起在新的 iOS 项目中默认启用。ARC 是 LLVM 编译器的一个功能,它会根据众所周知的 cococa 编程约定自动将所需的保留/释放/自动释放方法调用添加到您的代码中.
编译器告诉您“ARC 禁止显式消息......等”的原因是因为它正在为您管理这些调用 - 这是一个全有或全无的交易。ARC 管理所有内存管理,或者一个都不管理。
ARC 可以在每个项目或每个文件的基础上启用或禁用。启用 ARC 的代码与未启用 ARC 的代码兼容。
如果您想了解 ARC 为您做了什么,我建议您阅读过渡到 ARC 发行说明。
然后我会观看来自developer.apple.com/videos的所有自动引用计数视频。
最后,如果你准备好了,请阅读ARC 上的官方 LLVM 文档。
如果您使用 ARC,编译器将为您完成所有这些工作。