【问题标题】:NSString memory leak on componentsJoinedByStringcomponentsJoinedByString 上的 NSString 内存泄漏
【发布时间】:2014-06-30 07:30:33
【问题描述】:

在一个非 ARC 项目中,我写了这个 sn-p :

- (NSString *)formattedName
{
    NSCharacterSet *charset = [NSCharacterSet newlineCharacterSet];
    NSArray *components     = [self.name componentsSeparatedByCharactersInSet:charset];
    NSString *str1          = [components componentsJoinedByString:@" "];
    NSString *str2          = [str1 stringByReplacingOccurrencesOfString:@"<n>" withString:@""];
    return str2;
}

它被分解是因为我想跟踪 Instruments 向我展示的内存泄漏。 我的 str1 变量与 componentsJoinedByString 一起泄漏。我真的不知道为什么。是否是 iOS 系统泄漏(iOS 7.1)?

【问题讨论】:

  • 这可能是iOS的问题,如果你没有分配内存那么你不应该担心释放。
  • 是的,我是这么认为的,但是像这样的旧方法的泄漏对我来说似乎很奇怪。无论如何谢谢;)
  • 是什么让你觉得它在泄露?
  • @JeremyP:仪器告诉我
  • 你有自动释放池吗?

标签: ios objective-c memory-leaks nsstring


【解决方案1】:

由于您不使用 ARC,您是否考虑过进一步“解构它”?

我不会使用文字(例如@"&lt;n&gt;"),而是将这些 NSString 实例创建为它们自己的语句,并确保正确释放它们……看看你是否还在泄漏?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2014-06-06
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多