应该有一个非void返回值来指示是否发生了错误

May*_*rCM 2 xcode objective-c ios

嗨every1下面是我的代码,我的内存泄漏.我是处理内存泄漏的新手,所以即使它是一个简单的bug,也要善待我.

-(void) parseActivityData:(NSMutableData*) data parseError:(NSError **)error
{
    NSXMLParser* parser = [[NSXMLParser alloc] initWithData:data];

    [parser setDelegate:self];
    [parser setShouldProcessNamespaces:NO];
    [parser setShouldReportNamespacePrefixes:NO];
    [parser setShouldResolveExternalEntities:NO];

    [parser parse];
    NSError *parseError = [parser parserError];
    if (parseError && error) {
        *error = parseError;
    }
    [*error retain];

    [parser release];   
}
Run Code Online (Sandbox Code Playgroud)

对于这段代码我得到这个内存泄漏问题一个是"接受NSError的方法应该有一个非void返回值来指示是否发生错误"而另一个是空指针的DeDereference(从变量'error'加载) .谢谢

ale*_*ria 6

只需按要求执行操作即可.返回BOOL而不是在实际使用错误参数时设置为NO的void.也没有[*error retain];.