2012-02-25 2 views
-1

나는 이상한 문제에 직면하고있다. 나는 두 개의 문자열 값을 비교하고, 일치한다면 뭔가하는 것이다. 나는 하나의 값과 다른 값을 얻는 파이썬 스크립트 서버를 만들었다. 값은 로컬 문자열 변수입니다. 내가 서버 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]받은 메시지 1

누군가가 나에게 무엇을 잘못 제안 할 수 있습니다 .. 감사합니다

+1

포인터가 동일한 개체를 가리키는 경우 if 문이 확인되어 사용할 수 있습니다. Objective-C로 작업 할 때 포인터에 대한 이해가 필요합니다. @sch의 답변보기. –

답변

4

==를 사용하여 문자열을 비교하지 마십시오. 대신 [message isEqualToString:@"1"]을 사용하십시오.

+0

[message isEquaToString]이 (가) 작동하지 않습니다. –

+0

여기가 스크린 샷입니다! (http://i.imgur.com/nKmRo.png) –

+0

'[message isEqualToString : @ "1"]' 메시지가 '1'이고 'NSLog (@가 사용자가 온라인 상태 임)'일 때 'YES'가 실행되지 않습니까? – 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");