iOS比较button标题string
我只是在学习如何编码,所以感谢您对这个简单的问题的耐心。
这是我的代码:
- (IBAction)buttonWasPressed:(id)sender { NSString *buttonName = [sender titleForState:UIControlStateNormal]; if (buttonName == @"Button 1") { do something }
如何比较作为发件人传递给button的button的标题?
非常感谢您的帮助。
在Objective-C中,不能使用“==”来比较string,而应该使用NSString类中的方法isEqualToString
来比较string与另一个string。
if ([buttonName isEqualToString: @"Button 1"]) { // do something }
使用-isEqualToString方法:
if ([buttonName isEqualToString:@"Button 1"]) ...
使用==
你比较ponters,而不是它们包含的实际string值
比较string的更好的方法是:
NSString *string1 = <your string>; NSString *string2 = <your string>; if ([string1 caseInsensitiveCompare:string2] == NSOrderedSame) { //strings are same } else { //strings are not same }
我发现在Xcode 8.3.1中,有必要这样做:
if([self.myButton isEqual: @"My text"]) { //do this }