我想将NSString
的值与字符串“Wrong”进行比较。这是我的代码:
NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
doSomething;
}
我真的必须为“错误”创建一个NSString吗?
另外,我可以将UILabel
的{{1}}的值与字符串进行比较而不将标签值分配给字符串吗?
答案 0 :(得分:178)
我真的必须为“错误”创建一个NSString吗?
不,为什么不这样做:
if([statusString isEqualToString:@"Wrong"]){
//doSomething;
}
使用@""
只会创建一个字符串文字,这是一个有效的NSString
。
另外,我可以将UILabel.text的值与字符串进行比较而不将标签值分配给字符串吗?
是的,您可以执行以下操作:
UILabel *label = ...;
if([someString isEqualToString:label.text]) {
// Do stuff here
}
答案 1 :(得分:26)
if ([statusString isEqualToString:@"Wrong"]) {
// do something
}
答案 2 :(得分:8)
Brian,也值得投入 - 其他人当然是正确的,你不需要声明一个字符串变量。但是,下次要声明字符串时,不需要执行以下操作:
NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"];
虽然上面的方法有效但它提供了一个保留的NSString变量,然后在完成使用后需要显式释放它。
下次你想要一个字符串变量时,你可以用一种更方便的方式使用“@”符号:
NSString *myString = @"SomeText";
当你完成它时,这将自动释放,这样你也可以避免内存泄漏......
希望有所帮助!
答案 3 :(得分:2)
您还可以使用NSString类方法,这些方法还将创建一个自动释放的实例,并提供更多选项,如字符串格式:
NSString *myString = [NSString stringWithString:@"abc"];
NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];