ios - 从 iOS 6 开始, objective-c 选择器 dealloc 和 release 是否仍在使用?

标签 ios ios6 automatic-ref-counting llvm dealloc

我是 iOS 开发新手。在 iOS 6 中,我是否仍需要在 dealloc 中释放我的属性?

如果没有,我保留的属性如何释放?它是自动完成的吗?

需要一些指导。对不起,如果这是一个愚蠢的问题..

例如,当我这样做时:

- (void)dealloc
{
    [super dealloc];
}
@end

我收到类似的消息:

ARC forbids explicit message send of 'dealloc'

最佳答案

答案是肯定的,引用计数内存管理仍在使用,retainreleaseautoreleasedealloc 方法 仍在使用中。

您需要问的问题是:“我需要使用它们吗?”

这个答案取决于您是否启用了 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/

相关文章:

ios - iPhone 6/6+ 上未调用 MKMapSnapshotter 'completionHandler'

ios - 使用gmail api ios回复邮件

ios - 更新时跟踪 NSManagedObject 属性并立即更新 View

ios - 自定义 barbuttonItem 不显示

ios - 是否可以在 IOS 中运行谷歌地图导航而不是苹果 map

ios - iPad 6.0 中 UINavigationbar 背景色问题 setTintColor

ios - 合成的 NSMutableArray 返回 null

Objective-C:为什么自定义对象会变成僵尸

ios - 如何从 Xcode IOS 崩溃中查找与可变内存地址相关的代码?

objective-c - 仅在 iOS 4 上的 ARC 中为 "Modifying layer that is being finalized"