Должен ли я вообще всегда сохранять или копировать строковое значение, возвращаемое функцией?
Рассмотрим следующие примеры:
- (NSString*) getString:
{
return [[NSString alloc] autorelease];
}
- (NSString*) getStringAlloc: // Not sure if this convention is correct
{
return [NSString alloc];
}
...
В методе вызова
NSString* myString = [self getString];
Если я хочу продолжить и использовать myString в функции без ее освобождения, как мне справиться с этим. Также является именем второго метода, использующего правильные соглашения.
Если бы я знал, что возвращаемая строка автоматически высвобождается (из имени метода), и она не изменялась, то, вероятно, единственной причиной для сохранения или копирования будет то, что кто-то не изменит код в будущем. Если я не возражаю против изменения значения, то, опять же, мне, вероятно, не нужно сохранять или копировать.
Предположим, я не использую ARC.