谁能告诉我为什么NSAutoreleasePool会在这段代码中泄漏。我正在使用工具来检查泄漏&这段代码不知何故在泄漏。有人能给我指引正确的方向吗?我在其他地方也有完全相同的代码&它运行得很好。
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:self.url];
[request setDelegate:self];
NSOperationQueue *queue = self.downloadQueue;
[queue addOperation:request];
[request release];发布于 2011-01-05 02:48:09
如果您围绕该代码创建一个NSAutoreleasePool,它应该会消失。如果此代码未在主线程上运行,则通常会发生这种情况。
NSAutoreleasePool* pool = [NSAutoreleasePool new];
// Your code goes here
[pool drain];此外,请注意,如果您在NSAutoreleasePool新/排出块内循环,您将显示为泄漏,直到您遇到排出为止。这样做的结果是,如果你在循环中分配了太多的内存,你的应用程序仍然会耗尽内存。在这种情况下,您可能需要每次通过循环创建并耗尽第二个NSAutoreleasePool (或者可能每第n次通过循环以避免一些开销)。
发布于 2011-01-05 02:42:21
你是在辅助线程上运行这段代码吗?如果是这样的话,你有没有设置一个自动释放池?
https://stackoverflow.com/questions/4597121
复制相似问题