2011-08-14 67 views
0

所以即時通訊有問題做到這一點。這段代碼不會按照我想要的方式工作。Xcode:如果與文本框的聲明

if (answer.text == @"text") { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
}else{ 
    UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"title 2" message:@"Title 2" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [alert1 show]; 
    [alert1 release]; 
} 

我的問題是文本框「答案」中有文字「文本」,它不會做的第一UIAlertView中。它總是在else {}中做一個。這個代碼也在一個按鈕的IBAction中。現在任何幫助都很好。

+1

嘗試比較這樣的字符串:[[answer.text isEqualToString:@「text」]'還要確保你的插座連接正確('answer'是'IBOutlet')。 – Eimantas

+0

也有幫助。 – Tyler

回答

4

==運算符只比較指針,所以兩個相同的NSString實例不會相等。使用比較方法代替:

if ([answer.text isEqualToString:@"text"]) ... 
+0

感謝幫助! – Tyler

0
if ([text isEqualToString:@"text"]) { 

一個很好的說明:

在很多語言通常是不使用==比較蜇一個好主意。我總是尋找比較字符串函數或方法。我會建議你這樣做,除非語言手冊另有說明。

+0

這是因爲在很多語言中,變量只是指針。 ==一般是指針比較。 –