【问题标题】:object is leaking. NSAutorelease pool对象泄漏。 NSAutorelease 池
【发布时间】:2011-07-12 15:17:28
【问题描述】:

我在我的日志文件 (GDB) 中收到一条消息,因为对象正在泄漏... NsAutorelease 池.. 差不多 10 次。 谁能给我解释一下。为什么显示此消息..?

提前致谢。

【问题讨论】:

  • 可能是因为它正在泄漏......你能展示一下这个 NSAutoreleasePool 周围的代码吗?这样我们也许可以告诉你。
  • 简短回答:为什么?它的泄漏。现在要获得详细答案,请实际发布控制台消息和/或相关/可疑代码。
  • 在未来,最好发布您遇到的实际错误,而不是像“对象正在泄漏……NsAutorelease pool……之类的东西”这样的乱七八糟的回忆。如果这不是一个如此明显和众所周知的错误,那么没有人能够帮助您。

标签: iphone objective-c xcode ios4


【解决方案1】:

这意味着您正在自动释放没有自动释放池的对象。所以这些对象没有被释放,并且可能因此泄漏。

所以你应该确保你有一个游泳池。

【讨论】:

    【解决方案2】:

    我一般用:

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    
    // Your autoreleased objects
    
    [pool release];
    

    但这取决于您在代码中遇到问题的位置...您使用的是多线程吗?还是一切都发生在主线程中?

    【讨论】:

    • 使用[pool drain] 而不是[pool release]
    猜你喜欢
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 2012-11-11
    • 2020-12-20
    相关资源
    最近更新 更多