iOS比较按钮标题字符串

问题描述:

我只是在学习如何编写代码,所以感谢您对这个简单问题的耐心等待。iOS比较按钮标题字符串

这里是我的代码:

- (IBAction)buttonWasPressed:(id)sender { 
    NSString *buttonName = [sender titleForState:UIControlStateNormal]; 
    if (buttonName == @"Button 1") { 
     do something 
    } 

如何比较发件人传递给串按钮的标题?

非常感谢您的帮助。

在objective-c中,您不能使用“==”, 来比较字符串,而应该使用NSString类中的方法isEqualToString来比较字符串与另一个字符串。

if ([buttonName isEqualToString: @"Button 1"]) { 
    // do something 
} 
+1

我还建议你花几分钟看看NSString及其方法,在这里有很多你需要的地方:http://developer.apple.com/library/mac/ #documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html – csch 2011-03-11 07:56:41

+0

感谢您的帮助!我一定会查看该文档。 – 2011-03-13 04:02:45

使用-isEqualToString法:用

if ([buttonName isEqualToString:@"Button 1"]) 
    ... 

==你比较ponters,而不是实际的字符串值,它们包含

更好的方法来比较字符串是:

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 
}