Программа не входит в цикл (сравнение двух строковых значений) - PullRequest
0 голосов
/ 25 февраля 2012

Я столкнулся со странной проблемой. Я просто сравниваю два строковых значения и что-то делаю, если они совпадают. Я создал сервер сценариев Python, откуда я получаю одно значение, а другое значение является локальной строковой переменной.Я могу получить правильное значение с сервера, но при сравнении он не входит в цикл ..

Это мой код в моем клиенте для сравнения значений

-(void)messageReceived:(NSString *)message  {

    [_messages addObject:message];
    NSLog(@"the received message is %@",message);

    if (message == @"1") 
        NSLog(@"the user is online");
    else if (message == @"0") {
        UIAlertView *alert;
        alert = [[UIAlertView alloc]initWithTitle:@"Message" message:@"The selected user is not online !" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles: nil];
        [alert show];
    }
}

Вотжурнал, который я получаю, показывая правильные значения

2012-02-25 21: 44: 35.376 Сервер iMessenger [2001: 207] сказал: 1 2012-02-25 21: 44: 35.377 iMessenger [2001:207] получено сообщение 1

может кто-нибудь подсказать мне, что не так .. Спасибо

Ответы [ 3 ]

4 голосов
/ 25 февраля 2012

Не используйте == для сравнения строк.Вместо этого используйте [message isEqualToString:@"1"].

0 голосов
/ 31 июля 2013

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

if([message caseInsensitiveCompare:@"1"])
NSLog(@"the user is online");
0 голосов
/ 25 февраля 2012

Используйте isEqualToString для сравнения значений NSString:

if ([message isEqualToString:@"1"])
    NSLog(@"the user is online");
....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...