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