尝试使用release方法时编译器错误

时间:2012-10-07 18:17:05

标签: objective-c memory-management compiler-errors

这对我来说有点混乱,因为我正在阅读2009年的一本Objective-C书(这是我的图书馆唯一的版本),作者不断提醒读者释放内存,但是当我尝试使用这种方法。我读了一些关于它的内容,我发现release方法已被弃用,但是我需要做些什么而不是发布方法来管理内存,或者Objective-C现在是否有垃圾收集?

例如:

NSString *s = [[NSString alloc] init];
[s release];

2 个答案:

答案 0 :(得分:3)

不是垃圾收集,而是Automatic Reference CountingARC)为你工作。

要按照书中的示例操作,请在Xcode中创建一个新项目,然后取消选择使用ARC的选项。

答案 1 :(得分:2)

您已启用ARC;编译器会自动插入对retainrelease的调用。如果要手动执行内存管理,请在目标的构建设置中禁用ARC。在OS X上,还有垃圾收集但不推荐使用。