Xcode: если заявления с текстовым полем - PullRequest
0 голосов
/ 14 августа 2011

Так что у меня проблемы с этим.Этот код не будет работать так, как я хочу.

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];
}

Моя проблема в том, что текстовое поле 'answer' содержит текст 'text', в нем не будет первого UIAlertView.Это всегда делает то, что в остальном {}.Этот код также находится в IBAction для кнопки.Любая помощь сейчас хороша.

Ответы [ 2 ]

4 голосов
/ 14 августа 2011

Оператор == сравнивает только указатели, поэтому два одинаковых экземпляра NSString не будут сравниваться одинаково.Вместо этого используйте метод сравнения:

if ([answer.text isEqualToString:@"text"]) ...
0 голосов
/ 14 августа 2011
if ([text isEqualToString:@"text"]) {

Одна хорошая нота:

На многих языках обычно не рекомендуется использовать == для сравнения строк. Я всегда ищу функцию или метод сравнения строк. Я бы посоветовал вам это сделать, если в руководствах по языку не указано иное.

...