iPhone应用程序是否支持垃圾收集?
-
03-07-2019 - |
题
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不可用。
不隶属于 StackOverflow