Вы должны использовать -autorelease
. Ваш метод должен быть записан как:
+ (NSString*)myMethod {
NSMutableString *stringToReturn = [[NSMutableString alloc] init];
[stringToReturn appendString:@"lorem ipsum"];
return [stringToReturn autorelease];
}
Если происходит сбой, неисправность находится в другом месте.
Конечно, вы можете использовать фабричные методы, которые возвращают уже автоматически выпущенный экземпляр, переписав ваш метод как
+ (NSString*)myMethod {
NSMutableString *result = [NSMutableString string];
[result appendString:@"lorem ipsum"];
return result;
}
или еще лучше для вашего примера,
+ (NSString*)myMethod {
NSMutableString *result = [NSMutableString stringWithString:@"lorem ipsum"];
//...do something with result;
return result;
}
Очевидно, что если единственная цель вашего метода - просто вернуть новую строку со строкой, вы можете избежать всего метода целиком и использовать [NSMutableString stringWithString:@"lorem ipsum"]
, если вам действительно нужна изменяемая строка.