ios - 仪器报告的内存泄漏。不明白为什么

标签 ios objective-c memory-leaks instruments

Instruments 表明以下方法在创建可变字符串时正在泄漏内存。谁能告诉我为什么?我在 iOS 8 XCode 6.2 上使用 ARC。

 - (NSString *)capitalizeFirstLetter {
        if (self.length == 0) {
            return self;
        }
        NSMutableString * string = [NSMutableString stringWithString:self.lowercaseString];
        [string replaceCharactersInRange:NSMakeRange(0, 1) withString:[self substringToIndex:1].capitalizedString];
        return string;
    }

最佳答案

我不确定是什么原因导致泄漏,但如果您只想避免泄漏,您可以将方法更改为:

- (NSString *)capitalizeFirstLetter {
    if (self.length == 0) {
        return self;
    }
    return [NSString stringWithFormat:@"%@%@", [self substringToIndex:1].capitalizedString, [self substringFromIndex:1]];
}

您也可以在这里查看答案 Need help fixing memory leak - NSMutableString

关于ios - 仪器报告的内存泄漏。不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29326481/

相关文章:

ios - SwiftUI 从 CoreData 设置初始选择器值

iphone - 包含 1000 多张图片的 iPad Catalog 应用程序

iphone - NSTimer 的“for”循环错误

ios - 从 NSObject 派生时,Swift iOS 内存泄漏指示 XCode8

C# - 试图找到剩余的 EventHandler 以防止控制超出范围

ios - RestKit 映射嵌套属性失败

ios - 默认 ios 邮件应用程序打开时关闭键盘

iphone - 如何调整这个 UITableView 以便我可以获得我想要的东西?

iphone - 如何重命名 NSMutableDictionary 中的键?

python - tf.reset_default_graph 内存泄漏