我在下面的代码“NSData * returnData = [NSURLConnection ...........”
中收到此行的泄漏NSURL * finalURL = [NSURL URLWithString:curl]; NSMutableURLRequest * theRequest = [NSMutableURLRequest requestWithURL:finalURL 的CachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10]; [theRequest setHTTPMethod:@“GET”]; NSData * returnData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:nil]; BOOL enabled = [self getAutoGenerateObject:returnData]; 返回已启用;
请帮我解决这个问题。 谢谢, Madan Mohan
答案 0 :(得分:0)
您需要释放returnData。这就是Apple在“URL加载编程指南/使用NSURLConnection”中的示例中的原因,在异步通信的情况下,returnData被分配给iVar并在dealloc或connectionDidFinishLoading中释放。
根据您在方法getAutoGeneratedObject中执行的操作,但理论上它可以取得所有权。
您也可以将returnData标记为自动释放,但并不总是建议,特别是如果响应数据很大。
NSURL *finalURL = [NSURL URLWithString:curl];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:finalURL
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:10];
[theRequest setHTTPMethod:@"GET"];
NSData *returnData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:nil error:nil];
BOOL enabled = [self getAutoGenerateObject:returnData];
[returnData release];
return enabled;