在比较一个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];