我有一种情况,我需要暂时使用一些字符串,但我已经阅读了很多相互矛盾的东西,以至于我对最好的处理方式有点困惑。
我需要在 if 结构中分配一些字符串,但在 if 结构之外使用它们,因此需要在 if 之外创建它们,我在想类似的事情:
NSString *arbString = [[NSString alloc] init];
if(whatever)
{
arbString = @"Whatever"
}
else
{
arbString = @"SomethingElse"
}
myLabel.text = arbString;
[arbString release];
我见过人们刚刚使用的例子:
NSString *arbString;
创建字符串变量
谷歌的 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];
所以我不知道,哪个是最佳实践?