2011-08-14 7 views
0

그래서 문제가 발생하면 메신저 문제가 발생합니다. 이 코드는 내가 원하는 방식으로 작동하지 않을 것이다.Xcode : 텍스트 상자가있는 문문

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

내 문제는 늘 처음 UIAlertView을, 텍스트 상자 '답'그 안에 텍스트 '텍스트'를 가지고있다. 그것은 항상 else {}에있는 것을 수행합니다. 이 코드는 버튼에 대한 IBAction에도 있습니다. 어떤 도움이라도 좋습니다.

+1

다음과 같이 문자열을 비교해보십시오 :'[answer.text isEqualToString : @ "text"]'콘센트가 제대로 연결되어 있는지 확인하십시오 ('대답은'IBOutlet'입니다). – Eimantas

+0

도 도움이되었습니다. – Tyler

답변

4

== 연산자는 포인터 만 비교하므로 NSString의 두 인스턴스가 동일하지 않습니다. 대신 비교 방법을 사용

if ([answer.text isEqualToString:@"text"]) ... 
+0

덕분에 도움이되었습니다! – Tyler

0
if ([text isEqualToString:@"text"]) { 

한 좋은 참고 :

을 많은 언어에서 일반적으로 침을 비교 ==를 사용하는 것은 좋지 않습니다. 나는 항상 문자열 비교 함수 또는 메소드를 찾는다. 언어 설명서에 달리 언급되어 있지 않는 한, 나는 조언 할 것입니다.

+0

많은 언어 변수는 포인터에 불과하기 때문입니다. == 일반적으로 포인터 비교입니다. –

관련 문제