【问题标题】:NSCFString Memory LeakNSCFString 内存泄漏
【发布时间】:2010-05-04 23:31:27
【问题描述】:

我一直在解决很多内存泄漏问题,但没有成功解决这个问题。由于 [NSCFString substringWithRange:] 导致大量 NSCF 内存泄漏。我一直在检查所有的字符串分配,并在适当的地方释放了它们。负责图书馆:基金会。

以前有人遇到过这个问题吗?谁能建议我如何处理这个问题?

谢谢,

拉克什米

【问题讨论】:

  • 在什么情况下会出现这种情况?你有重现它的代码示例吗?
  • 我的错!我解决了这个问题。但是General Block-3584 有一个漏洞。我知道据报道这个块是泄漏的并且是框架中的一个错误。但我只是想知道 CTFont 是否是框架中的漏洞之一。 CTFont --> UIKit(责任库)。谢谢!
  • General Block-3584 仅表示 3584 字节的 malloc。它本身不是任何框架的组件。无论如何,从网络上的信息来看,这似乎是一个 CFNetwork 问题,并且并不完全清楚这是一个泄漏——只是泄漏工具认为它是一个泄漏。无论如何,这可能不是你的错,你可以忽略它。
  • 谢谢马特。我很感激。
  • 您应该在实际答案中而不是在 cmets 中提供您自己对此问题的答案。这样它就会从未答复列表中删除。

标签: iphone objective-c memory memory-management memory-leaks


【解决方案1】:

General Block-3584 仅表示 3584 字节的 malloc。它本身不是任何框架的组件。无论如何,从网络上的信息来看,这似乎是一个 CFNetwork 问题,并不完全清楚这是一个泄漏——只是 Leaks 工具认为它是一个泄漏。无论如何,这可能不是你的错,你可以忽略它。 - 马特

【讨论】:

    【解决方案2】:

    使用 NSString 的类方法,例如 [NSString stringWithString:@"hi"] 会泄漏,因为内存从未分配过 - 你看不到那里的分配,是吗?正确的做法是:

    NSString *temp = [[NSString alloc] initWithString:@"hi"];
    myIvarProperty = temp;
    [temp release];
    

    【讨论】:

    • 这根本不是正确的方法。我想你的意思是self.myIvarProperty,否则myIvarProperty 会引用你不拥有的东西。
    • 很好的答案,但我想知道为什么?
    猜你喜欢
    • 2011-02-21
    • 2011-07-16
    • 2011-10-13
    • 1970-01-01
    • 2010-11-23
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多