一時的にいくつかの文字列を使用する必要がある状況がありますが、競合するものを非常に多く読んだため、続行する最善の方法について少し混乱しています。
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];
だから私にはわかりませんが、どれがベストプラクティスですか?