autorelease已弃用,还有其他选择吗?

时间:2013-10-02 20:31:16

标签: objective-c automatic-ref-counting autorelease

遵循代码的照片幻灯片教程我会遇到一些我认为不合适的代码。我在autorelease处出现ARC错误,并在setDelegate:self

时发出警告
NSXMLParser *photoParser = [[[NSXMLParser alloc]
                                 initWithContentsOfURL:[NSURL URLWithString:
                                                        @"http://localhost/photos/index.xml"]] autorelease];
    [photoParser setDelegate:self];

1 个答案:

答案 0 :(得分:3)

删除自动释放,以便代码如下所示:

ARC不允许显式自动释放调用。如果你想要一个对象被释放,你不必做任何事情(ARC会处理它)。在某些情况下,您可能希望将对象设置为nil(例如photoParser = nil;)

NSXMLParser *photoParser = [[NSXMLParser alloc]
                                 initWithContentsOfURL:[NSURL URLWithString:
                                                        @"http://localhost/photos/index.xml"]];
[photoParser setDelegate:self];