iPhone是否支持垃圾回收?如果是,那么执行使用 + alloc -init 组合执行的操作的替代方法是什么:

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
UIImage *originalImage = [[UIImage alloc] initWithData:data];
detailViewController = [[[DetailViewController alloc] initWithNibName:@"DetailView bundle:[NSBundle mainBundle]] autorelease];

......和其他命令。提前感谢您提供任何帮助或指导。

有帮助吗?

解决方案

没有。对于设备上有限的电池寿命等,垃圾收集的开销太大。

您必须始终使用 alloc / release 模式进行编程。

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
...
[xmlParser release];

或(不适合所有情况)

NSXMLParser *xmlParser [[[NSXMLParser alloc] initWithData:xmlData] autorelease];

希望这有帮助!

其他提示

不,目前iPhone不支持垃圾回收。您需要使用 alloc / release / autorelease

请注意,缺少垃圾收集意味着不支持弱引用。

Mono touch有垃圾收集并在iPhone OS上运行。

在整个讨论中没有人说过Java语言,在Java中,Garbage集合是内置在语言中的,所以它在Android,J2ME和Blackberry :)中是隐式可用的,在Objective-C中它是可选的,所以在iPhone中GC不可用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top