如何更好地初始化字符串以避免死存储

ele*_*ele 0 xcode cocoa-touch dead-code nsstring ios

我发现了一些这样的问题,但我找不到这个特别的问题.我有一些初始化为的字符串

NSString *string = [[NSString alloc] init];
Run Code Online (Sandbox Code Playgroud)

然后根据if/else块的结果为其分配值:

if ([anotherThing isEqualToString:@"boogers"]) {
    string = [NSString stringWithFormat:@"some characters"];
} else {
    string = [NSString stringWithFormat:@"some _other_ characters"];
}
Run Code Online (Sandbox Code Playgroud)

然后string在方法的后面使用.

如何在不在alloc/init阶段留下死存储的情况下完成此操作?如果我在if(或else)中分配,那么当我需要几行时,字符串就消失了.

Joe*_*kin 5

您不必在第一行初始化字符串 - 您只需要声明它:

NSString *string = nil;
if ([anotherThing isEqualToString:@"boogers"]) {
    string = @"some characters";
} else {
    string = @"some _other_ characters";
}
Run Code Online (Sandbox Code Playgroud)