从iOS 6开始,目标C选择器是否仍在使用中?

lak*_*esh 3 llvm dealloc ios automatic-ref-counting ios6

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

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

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

例如,当我这样做时:

- (void)dealloc
{
    [super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)

我收到类似的消息:

ARC forbids explicit message send of 'dealloc'
Run Code Online (Sandbox Code Playgroud)

Jes*_*edc 5

答案是肯定的,仍在使用引用计数的内存管理和方法retain,release,autoreleasedealloc一直沿用至今.

你需要问的问题是:"我需要使用它们吗?"

答案取决于您是否启用了ARC.ARC代表自动引用计数,默认情况下已在iOS 5中的新iOS项目中启用.ARC是LLVM编译器的一项功能,可根据众所周知的cococa编程约定自动将所需的保留/释放/自动释放方法调用添加到代码中.

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

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

如果您希望看到ARC为您做什么,我建议您阅读过渡到ARC发行说明.

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

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