2011-03-11 76 views
6

我只是在學習如何編寫代碼,所以感謝您對這個簡單問題的耐心等待。iOS比較按鈕標題字符串

這裏是我的代碼:

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

如何比較發件人傳遞給串按鈕的標題?

非常感謝您的幫助。

回答

9

在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

3

使用-isEqualToString法:用

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

==你比較ponters,而不是實際的字符串值,它們包含

1

更好的方法來比較字符串是:

NSString *string1 = <your string>; 
NSString *string2 = <your string>; 

if ([string1 caseInsensitiveCompare:string2] == NSOrderedSame) { 
    //strings are same 
} else { 
    //strings are not same 
} 
0

我發現在Xcode 8.3.1中,有必要這樣做:

if([self.myButton isEqual: @"My text"]) { 
//do this 
}