Ios 在下面的示例中,我得到了NSMutableURLRequest的内存泄漏

Ios 在下面的示例中,我得到了NSMutableURLRequest的内存泄漏,ios,Ios,在上面的代码中,我创建了一个NSMutableURLRequest,然后加载了一个带有此请求的webview。但它给了我moemory leak的信息,说明如下:- 1) 对象泄漏:分配并存储到“请求”中的对象稍后不会在此执行路径中引用,并且保留计数为+1,如警告消息所示,请将请求的释放语句用作 NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url]; [request setHTTPMeth

在上面的代码中,我创建了一个NSMutableURLRequest,然后加载了一个带有此请求的webview。但它给了我moemory leak的信息,说明如下:-


1) 对象泄漏:分配并存储到“请求”中的对象稍后不会在此执行路径中引用,并且保留计数为+1,如警告消息所示,请将请求的释放语句用作

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];
    [webView loadRequest:request];
或者你可以使用

 MutableURLRequest *request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease];

如果不使用ARC,则需要释放/自动释放通过分配内存创建的任何参数。避免这种情况的一种方法是切换到ARC。

但是如果我使用autorelease,它将变得更容易崩溃,因为我们永远不知道autorelease池何时会被清空,但我不知道我们应该在哪里使用autorelease?这可能是因为
autorelease
是一个延迟的
发布。当您的方法返回到操作系统的运行循环时,就会发生释放。@BhartiSyal,autorelease不会立即减少计数。内存池清空需要一段时间。ACB和我向您介绍的是必读的,而且非常密集。如果你不得不经历多次,不要感到惊讶。但它解决了许多这类问题。
 MutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];