Если в моем приложении не работает statment - PullRequest
0 голосов
/ 19 декабря 2009

Я делаю словарь (это мое тестовое приложение) вот мой код, который не работает:

- (IBAction) btnClickMe_Clicked:(id)sender {


    NSString *kw = s.text;

    NSString *encodedkw =  [kw stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *mms = [NSString stringWithFormat: @"%@", encodedkw];

    if (mms=NULL){
        iMessageLabel.text=@"put text";
    } else if (mms=@"a"){
        iMessageLabel.text=@"this is a";
    } else if (mms=@"b"){
    iMessageLabel.text=@"this is b";
    }


}

У кого-нибудь есть идеи? Спасибо ALex

Ответы [ 3 ]

4 голосов
/ 19 декабря 2009

Нельзя использовать == для объектов NSString. Попробуйте сделать это:

if (encodedkw == nil){
    iMessageLabel.text=@"put text";
} else if ([encodedkw isEqualToString:@"a"]){
   iMessageLabel.text=@"this is a";
} else if ([encodedkw isEqualToString:@"b"]){
   iMessageLabel.text=@"this is b";
}

mms должно быть равно encodedkw, поэтому я переключился на это. Также я использую isEqualToString для сравнения строк. Наконец, я изменил нулевую проверку на nil вместо NULL.

1 голос
/ 19 декабря 2009

Вы использовали = вместо ==

1 голос
/ 19 декабря 2009

Может ли случиться так, что вам нужно вызвать какую-то процедуру манипуляции со строками, например сравнить для сравнения строк, а не просто для сравнения указателей?

Кроме того mms=NIL означает присвоение NIL mms, сравнение не требуется.

Upd.: NIL не означает пустую строку. Вместо этого вы должны написать [mms length] == 0, чтобы увидеть, является ли строка пустой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...