如何在xcode 4.2中释放内存?

如何在xcode 4.2中释放内存?,xcode,Xcode,在xcode 4.2中,我发现它非常令人沮丧,因为您无法使用: -(void)dealloc { [label release]; //'release' is unavailable [super dealloc]; //'dealloc' is forbidden in automatic reference counting } 是否有其他方法,因为自动释放和其他释放也不起作用。阅读自动引用计数。如果您正确地编写了代码,就不需要再做这些事情了 如果要使用旧代码而不转换,请禁用ARC。将-

在xcode 4.2中,我发现它非常令人沮丧,因为您无法使用:

-(void)dealloc {
[label release]; //'release' is unavailable
[super dealloc]; //'dealloc' is forbidden in automatic reference counting
}

是否有其他方法,因为自动释放和其他释放也不起作用。

阅读自动引用计数。如果您正确地编写了代码,就不需要再做这些事情了

如果要使用旧代码而不转换,请禁用ARC。将
-fno objc arc
放入任何不想使用arc的源模块的编译器标志中

joe

Xcode 4.2引入了“自动参考计数”(又名ARC)。这是一个编译器特性,基本上为您插入retain和release调用。在ARC下,如果你有一个指向某个对象的指针,你会保留它。当指针超出范围,或被重新指定指向另一个对象时,原始对象将被释放。真的很好


因此,简而言之,您只需删除对
retain
release
autorelease
的所有调用,编译器就会为您做正确的事情。

。。。你没有。除非你的项目使用手动内存管理。那么即使我没有释放内存,我也不会收到内存警告?我不能马上说。查看文档,我不认为内存警告已经消失,特别是在iPhone3GS仍在市场上的情况下。只是发现它可以自动为你做所有事情!如果收到内存警告,您可能仍需要减少内存使用量。要做到这一点,您可以通过执行
myImageIvar=nil,或者您可以通过执行
[myCache removeAllObjects]清除缓存。ARC不会为您处理内存警告。它只是确保如果您有指向某个对象的指针,该对象将被保留,并且当您删除指向某个对象的指针时,该对象将被释放。如果我没有释放内存,这有关系吗?