我正在关注正式的Apple样本
在使用Instruments检查我的代码时,我发现了由未释放的NSURLRequest引起的泄漏。我现在已经在
之后不久加入了[request release]
NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
它似乎有效。我是对的吗?
问候
答案 0 :(得分:2)
请求是自动释放的,这意味着自动释放池应该负责释放它。如果您在Cocoa应用程序中使用它,您应该自动设置自动释放池,以处理释放自动释放的对象。
如果您正在使用非可可应用程序,则必须自己进行设置,并确保释放/排空池以释放对象。
通常,您只需要发布使用alloc
,copy
,mutableCopy
或您发送retain
的对象。这意味着您必须释放使用[[NSURLConnection alloc] init...
创建的连接对象,否则会导致泄漏。
以下是有关Autorelease Pools
的文档的链接答案 1 :(得分:0)
NSURLRequest *request = [[NSURLRequest alloc] initWithURL: url];
这当然要发布了。我上面提到的样本表现不同。昨晚似乎相当迟了。
但是,非常感谢您的回答。
有一件事让我发疯:如果有人回答我的问题,我没有收到电子邮件通知,虽然我已经设置了标记......
此致