2

我是新的 iOS 开发。我还需要dealloc在 iOS 6 中发布我的属性吗?

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

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

例如,当我这样做时:

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

我收到类似于以下内容的消息:

ARC forbids explicit message send of 'dealloc'
4

2 回答 2

5

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

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

该答案取决于您是否启用了 ARC。ARC 代表 Automatic Reference Counting,自 iOS 5 起在新的 iOS 项目中默认启用。ARC 是 LLVM 编译器的一个功能,它会根据众所周知的 cococa 编程约定自动将所需的保留/释放/自动释放方法调用添加到您的代码中.

编译器告诉您“ARC 禁止显式消息......等”的原因是因为它正在为您管理这些调用 - 这是一个全有或全无的交易。ARC 管理所有内存管理,或者一个都不管理。

ARC 可以在每个项目或每个文件的基础上启用或禁用。启用 ARC 的代码与未启用 ARC 的代码兼容。

如果您想了解 ARC 为您做了什么,我建议您阅读过渡到 ARC 发行说明。

然后我会观看来自developer.apple.com/videos的所有自动引用计数视频。

最后,如果你准备好了,请阅读ARC 上的官方 LLVM 文档

于 2012-10-30T05:58:16.987 回答
1

如果您使用 ARC,编译器将为您完成所有这些工作。

供您参考:http: //developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html

于 2012-10-30T05:48:46.553 回答