2012-02-25 4 views
-1

Я столкнулся с какой-то странной проблемой. Я просто сравниваю два строковых значения и что-то делаю, если они совпадают. Я создал сервер сценариев Python, откуда я получил одно значение, а другое Значение - это локальная строковая переменная. я могу retrive правильного значения fromt сервера, но при сравнении его не входит в цикл ..Программа не входит в цикл (Сравнение двух строковых значений)

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

-(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] полученное сообщение is 1

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

+1

Ваш если заявление проверяет если указатели указывают на тот же объект. Для работы с Objective-C требуется довольно хорошее понимание указателей. См. Ответ от @sch. –

ответ

4

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

+0

[сообщение isEquaToString] также не работает –

+0

вот скриншот! (Http://i.imgur.com/nKmRo.png) –

+0

Вы имеете в виду '[message isEqualToString: @" 1 "]' не оценивает ' YES', когда сообщение «1», и «NSLog (@« пользователь в сети »);' не выполняется? – sch

0

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

if ([message isEqualToString:@"1"]) 
    NSLog(@"the user is online"); 
.... 
+0

У меня получилось .. мне пришлось изменить скрипт сервера –

0

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

if([message caseInsensitiveCompare:@"1"]) 
NSLog(@"the user is online"); 
Смежные вопросы