在比较一个variables之前是否需要分配一个string?
我想将一个NSString的值与string“Wrong”进行比较。 这是我的代码: 
 NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"]; if( [statusString isEqualToString:wrongTxt] ){ doSomething; } 
我真的必须创build一个NSString为“错”吗?
 另外,我可以将UILabel的text的值与一个string进行比较,而不将标签值分配给一个string? 
我真的必须创build一个NSString为“错”吗?
不,为什么不这样做:
 if([statusString isEqualToString:@"Wrong"]){ //doSomething; } 
 使用@""只是创build一个string文字,这是一个有效的NSString 。 
另外,我可以将UILabel.text的值与string进行比较,而不将标签值分配给string?
是的,你可以做一些事情:
 UILabel *label = ...; if([someString isEqualToString:label.text]) { // Do stuff here } 
 if ([statusString isEqualToString:@"Wrong"]) { // do something } 
布赖恩,也值得在这里扔 – 其他人当然是正确的,你不需要声明一个stringvariables。 但是,下次您要声明一个string时,您不需要执行以下操作:
 NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"]; 
尽pipe上述方法可行,但它提供了一个保留的NSStringvariables,在完成使用后,您需要明确释放它。
下一次你想要一个stringvariables,你可以用一个更方便的方式使用“@”符号:
 NSString *myString = @"SomeText"; 
当你完成它的时候这将会被自动释放,所以你也可以避免内存泄漏。
希望有所帮助!
你也可以使用NSString类的方法,它也会创build一个自动释放的实例,并有更多的选项,如string格式化:
 NSString *myString = [NSString stringWithString:@"abc"]; NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];