我正在学习如何编码,感谢您对这个简单问题的耐心。
这是我的代码:
- (IBAction)buttonWasPressed:(id)sender {
NSString *buttonName = [sender titleForState:UIControlStateNormal];
if (buttonName == @"Button 1") {
do something
}
如何将作为发送者传递的按钮的标题与字符串进行比较?
非常感谢你的帮助。
答案 0 :(得分:9)
在objective-c中你无法使用“==”来比较字符串,
相反,您应该使用NSString类中的方法isEqualToString
来比较字符串与另一个字符串。
if ([buttonName isEqualToString: @"Button 1"]) {
// do something
}
答案 1 :(得分:3)
使用-isEqualToString方法:
if ([buttonName isEqualToString:@"Button 1"])
...
使用==
比较ponters,而不是它们包含的实际字符串值
答案 2 :(得分:1)
比较字符串的更好方法是:
NSString *string1 = <your string>;
NSString *string2 = <your string>;
if ([string1 caseInsensitiveCompare:string2] == NSOrderedSame) {
//strings are same
} else {
//strings are not same
}
答案 3 :(得分:0)
我发现使用Xcode 8.3.1,有必要这样做:
if([self.myButton isEqual: @"My text"]) {
//do this
}