我正在关注 Apple 官方示例
在使用 Instruments 检查我的代码时,我发现了一个由未发布的 NSURLRequest 引起的泄漏。我现在已经包括了[request release]
不久之后
NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
它似乎工作。我对吗?
问候
我正在关注 Apple 官方示例
在使用 Instruments 检查我的代码时,我发现了一个由未发布的 NSURLRequest 引起的泄漏。我现在已经包括了[request release]
不久之后
NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
它似乎工作。我对吗?
问候
该请求是自动释放的,这意味着自动释放池应该负责释放它。如果你在 Cocoa 应用程序中使用它,你应该自动设置一个自动释放池来处理自动释放对象的释放。
如果您正在开发非可可应用程序,则必须自己设置并确保释放/排空池以释放对象。
通常你只需要释放用alloc
,或者如果你发送了它创建copy
的对象。这意味着您必须释放您创建的连接对象,否则会导致泄漏。mutableCopy
retain
[[NSURLConnection alloc] init...
这是有关自动释放池的文档的链接
啊,我明白了。由于某些原因,我将“官方”示例与我自己的实现混合在一起:) 在我的代码中,我正在这样做:
NSURLRequest *request = [[NSURLRequest alloc] initWithURL: url];
这当然必须被释放。我上面提到的示例表现不同。昨晚好像有点晚了。
但是,非常感谢您的回答。
有一件事让我发疯:我没有收到电子邮件通知,如果有人回答我的问题,尽管我已经设置了标记......
问候