Я написал метод (показано ниже). Проект скомпилирован с использованием ARC, но файл, в котором находится этот метод, должен быть скомпилирован с помощью переключателя -fno-objc-arc из-за зависимости сторонней библиотеки.NSArray componentsJoinedByString Memory Leak
Инспектор утечки говорит мне, что есть утечка на
return [fragments componentsJoinedByString:@" "];
Я не могу видеть - я мог попросить еще одну пару глаз, чтобы указать на ошибку моего пути?
Большое спасибо
-(NSString *)trimAndTidy:(NSString *)aString
{
NSCharacterSet *nsc = [NSCharacterSet characterSetWithCharactersInString:@"\r\n \t"];
NSString *fragment;
NSMutableArray *fragments = [NSMutableArray array];
NSScanner *scanner = [NSScanner scannerWithString:aString];
do
{
if ([scanner scanUpToCharactersFromSet:nsc intoString:&fragment])
[fragments addObject:fragment];
}
while (![scanner isAtEnd]);
return [fragments componentsJoinedByString:@" "];
}
В коде, который вы отправили, нет утечки. Какое точное сообщение используется инструментом отладки? –
Кодовый фрагмент выглядит хорошо - все автореализовано, в том числе и результат. Как вы используете 'trimAndTidy'? – dasblinkenlight
Как предполагалось, и только предположение, я бы сказал, что это может быть aString. '[x trimAndTidy: [[NSString alloc] init]]' может потребовать утечку в этой строке, потому что это последняя точка, в которой aString находится в области видимости. –