【问题标题】:Leaks on NSString that appendformats附加格式的 NSString 泄漏
【发布时间】:2011-11-02 20:15:15
【问题描述】:

我在 NSString 上有很多泄漏。我使用 appendformat 将字符串附加到它。

代码如下:

NSString *textedetails = [[NSMutableString alloc] init];
        if([dico objectForKey:@"alertSerie"] != nil)
            {[textedetails appendFormat:@"Numéro de Série: %@ \n",[dico objectForKey:@"alertSerie"]];}
        if([dico objectForKey:@"alertDate"] != nil)
            {[textedetails appendFormat:@"Date de mise en service: %@ \n",[dico objectForKey:@"alertDate"]];}
        if([dico objectForKey:@"alertCli"] != nil)
            {[textedetails appendFormat:@"Nom du client associé: %@ \n",[dico objectForKey:@"alertCli"]];}

... //我把 textdetails 放到 UITextField 和... [文本详情发布];

该代码在上面代码的第一行和最后一行给我泄漏...

泄漏的打印屏幕是HERE !!!

非常感谢帮助我!!!

【问题讨论】:

  • 完成后释放字符串。
  • 我猜你的问题被否决了,因为你没有将代码直接放入问题中和/或因为它是一段很长的代码,没有任何明显的努力来隔离问题。
  • @CocoaFu :我做到了,但它没有做任何事情(除了显示警报)。
  • @Yannick :我刚刚发布它。和 Codo:我编辑了它;-) 谢谢

标签: iphone ios memory-leaks


【解决方案1】:
NSString *textedetails = [[NSMutableString alloc] init];
NSMutableString *texterecap = [[NSMutableString alloc] init];

这两个都从未发布。

试试这个

NSString *textedetails = [[[NSMutableString alloc] init] autorelease];
NSMutableString *texterecap = [[[NSMutableString alloc] init] autorelease]; 

或者这个

NSMutableString *textedetails = [NSMutableString string];
NSMutableString *texterecap = [NSMutableString string];

【讨论】:

  • NSString *textedetails = [NSMutableString string];错了,使用:NSMutableString *textedetails = [NSMutableString string];
  • 好的,谢谢。我也试过这个,但它仍然在最后一个“appendformat”上一次又一次地泄漏......
  • 错误,它现在不会泄漏 :-D 谢谢(我最喜欢的管道工是 mario,但你是第二个 :-))但 NSString 可能不会响应 appendFormat(这是一个警告.. .)
【解决方案2】:

您可以尝试在使用完变量“textedetails”和“texterecap”后立即释放它。

【讨论】:

    【解决方案3】:

    appendFormat 方法没有直接泄漏。这只是一个后续故障,因为 NSMutableString 实例从未被释放。

    我看到您创建 NSMutableString 实例的两个位置:

    ... = [[NSMutableString alloc] init];
    

    这些实例必须在某个地方发布。

    【讨论】:

    • 好的,谢谢。但是我在方法之后释放它并且它仍然泄漏:-/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多