我是一个新手,当谈到目标C,我现在遇到内存泄漏与下面的代码片段。内存泄漏发生在“响应对象”分配中。每当我试图发布类似于responseData的内容时,我就会崩溃。
-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString* responseStr = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSMutableArray* responseObj = [responseStr objectFromJSONString];
[delegate loadGameDetails:[responseObj objectForKey:@"result"]];
[responseStr release];
[responseData release]; responseData = nil;
}
我也尝试了如下自动释放,但也遇到了崩溃:
[delegate loadGameDetails:[[responseObj objectForKey:@"result"] autorelease]];
我释放这个内存块的正确方法是什么?
最佳答案
问题不在你的分配上。您正在将objectForKey:
发送到一个NSMutableArray
方法,这实际上是一个NSDictionary
/NSMutableDictionary
方法。仔细检查真正返回的对象类型。