我想将an的值NSString
与字符串“ Wrong”进行比较。这是我的代码:
NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
doSomething;
}
我真的必须为“错误”创建NSString吗?
另外,可我一个的值进行比较UILabel
的text
一个字符串没有标签值分配给字符串?
我想将an的值NSString
与字符串“ Wrong”进行比较。这是我的代码:
NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
doSomething;
}
我真的必须为“错误”创建NSString吗?
另外,可我一个的值进行比较UILabel
的text
一个字符串没有标签值分配给字符串?
Answers:
我真的必须为“错误”创建NSString吗?
不,为什么不这样做:
if([statusString isEqualToString:@"Wrong"]){
//doSomething;
}
使用会@""
简单地创建一个字符串文字,它是有效的NSString
。
另外,可以在不将标签值分配给字符串的情况下将UILabel.text的值与字符串进行比较吗?
是的,您可以执行以下操作:
UILabel *label = ...;
if([someString isEqualToString:label.text]) {
// Do stuff here
}
Brian,也值得一提-其他人当然是正确的,因为您不需要声明字符串变量。但是,下次要声明字符串时,不需要执行以下操作:
NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"];
尽管上面的方法确实有效,但是它提供了一个保留的NSString变量,在使用完该变量后,您需要显式释放该变量。
下次需要字符串变量时,可以使用更方便的方式使用“ @”符号:
NSString *myString = @"SomeText";
完成后会自动释放,因此也避免了内存泄漏...
希望有帮助!
new
或copy
例如newObject
(来自NSDictionaryController
)或mutableCopy
(来自NSObject
)developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/...
您还可以使用NSString类方法,该方法还将创建一个自动发布的实例,并具有更多选项,例如字符串格式:
NSString *myString = [NSString stringWithString:@"abc"];
NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];