У меня есть ситуация, когда мне нужно временно использовать некоторые строки, но я прочитал так много противоречивых вещей, что я немного сбит с толку относительно того, как лучше всего поступить.
Мне нужноназначить некоторые строки внутри структуры if, но использовать их вне структуры if, чтобы их нужно было создавать вне if, я думал что-то вроде:
NSString *arbString = [[NSString alloc] init];
if(whatever)
{
arbString = @"Whatever"
}
else
{
arbString = @"SomethingElse"
}
myLabel.text = arbString;
[arbString release];
Я видел примеры, когда люди просто использовали:
NSString *arbString;
для создания строковой переменной
Руководство Google Objective C гласит, что во время создания предпочтительнее автоматическое высвобождение:
"При создании новых временных объектов автоматически высвобождайте их в одной строкекак вы создаете их, а не как отдельный выпуск позже в том же методе ":
// AVOID (unless you have a compelling performance reason)
MyController* controller = [[MyController alloc] init];
// ... code here that might return ...
[controller release];
// BETTER
MyController* controller = [[[MyController alloc] init] autorelease];
Так что я понятия не имею, что является лучшей практикой?