这对我来说有点混乱,因为我正在阅读2009年的一本Objective-C书(这是我的图书馆唯一的版本),作者不断提醒读者释放内存,但是当我尝试使用这种方法。我读了一些关于它的内容,我发现release方法已被弃用,但是我需要做些什么而不是发布方法来管理内存,或者Objective-C现在是否有垃圾收集?
例如:
NSString *s = [[NSString alloc] init];
[s release];
答案 0 :(得分:3)
不是垃圾收集,而是Automatic Reference Counting
(ARC
)为你工作。
要按照书中的示例操作,请在Xcode中创建一个新项目,然后取消选择使用ARC的选项。
答案 1 :(得分:2)
您已启用ARC;编译器会自动插入对retain
和release
的调用。如果要手动执行内存管理,请在目标的构建设置中禁用ARC。在OS X上,还有垃圾收集但不推荐使用。