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;
}
答案 0 :(得分:1)
我不确定导致泄漏的原因,但如果您只想避免泄漏,可以将方法更改为:
- (NSString *)capitalizeFirstLetter {
if (self.length == 0) {
return self;
}
return [NSString stringWithFormat:@"%@%@", [self substringToIndex:1].capitalizedString, [self substringFromIndex:1]];
}