gpt4 book ai didi

ios - 分配对象和释放 ios 的问题

转载 作者:行者123 更新时间:2023-11-29 04:40:47 25 4
gpt4 key购买 nike

下面的代码出现内存泄漏。其中 self.firstURLConn 是 @property(nonatomic, keep)。

NSMutableURLRequest* req = [[NSMutableURLRequest alloc] initWithURL:urlcachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60.0f];

self.firstURLConn = [[[NSURLConnection alloc] initWithRequest:req delegate:self] autorelease];

[req release];//memory leak here and with self.firstURLConn

为什么这里内存泄漏

最佳答案

您是否曾经运行过“产品”>“分析”?如果您这样做,请向我们展示内存泄漏问题日志。

它们不仅会告诉您存在内存泄漏问题的代码行,还会显示导致问题的代码步骤。

我建议你使用Instrument工具和leaking工具。它将显示有关您的代码问题的深入信息。

编辑: req 变量未命中自动释放。因为req已经被retain了2次。像这样更改代码

NSMutableURLRequest* req = [[[NSMutableURLRequest alloc] initWithURL:urlcachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60.0f] autorelease];

self.firstURLConn = [[[NSURLConnection alloc] initWithRequest:req delegate:self] autorelease];

[req release];//memory leak here and with self.firstURLConn

因为您的 firstURLConn 已在保留属性中声明。因此,在 dealloc 方法中,您应该将 nil 设置为此属性

- (void)dealloc
{
self.firstURLConn = nil;
[super dealloc];
}

关于ios - 分配对象和释放 ios 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10428266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com