Если у меня есть метод
- (void) myMethod:(NSString *)string {
[Object anothermethodWithString:string];
}
и я звоню
[Object myMethod:@"this is a string with no alloc statement"]
Мне нужно сделать что-то вроде
- (void) myMethod:(NSString *)string {
NSString *string2 = [[NSString alloc] initWithFormat:@"%@", string];
[Object anothermethodWithString:string2];
[string2 release];
}
вместо того, как у меня был мой метод раньше? У меня неправильный код, который, по-видимому, вызван автоматическим освобождением строки во время вызова второго метода в другом методе (как в примере). Во-вторых, мой метод исправил все мои проблемы.
Так что строка "не распределена" - автоматически освобожденная строка? Я задал этот вопрос в качестве продолжения другого вопроса (который был совершенно не связан и именно поэтому я создаю этот пост), и несколько источников сказали, что мне не нужно перераспределять строку. Я запутался, потому что поведение моего кода говорит мне об обратном.