2011-07-03 4 views
0

iOS SDK에 응용 프로그램을 만들 때 사용자가 콘텐츠에 액세스하려면 암호를 입력해야합니다. If-Else 문을 사용하여 암호를 확인합니다. 문제는 If-else 문이 거꾸로 작동한다는 것입니다. 예를 들면 다음과 같습니다. 사용자가 올바른 암호를 입력하면 레이블 텍스트에 잘못된 암호가 표시됩니다. 사용자가 잘못된 암호를 입력하면 레이블 텍스트에 : Password is Correct가 표시됩니다. 그것은 제가하고 싶은 것과는 정반대입니다. 여기 내 코드 :If-Else 문이 플립 플롭입니다.

- (IBAction)isKeywordSecure:(id)sender { 
    NSString *Key = [Keyword text]; 
    if ([Key compare:@"Password"]) { 
     [email protected]"Keyword is Correct"; 
    } else { 
     [email protected]"Keyword is WRONG"; 
    } 
} 

내가 뭘 잘못 했니? 어떤 도움을 주시면 감사하겠습니다! 감사!

답변

4

거의 모든 문자열 비교 루틴과 마찬가지로 NSString compare: 메서드는 문자열이 동일하면 비교하여 0을 반환합니다. 정확하게는 NSOrderedSame 인 0을 반환합니다.

당신은

if ([Key compare:@"Password"] == NSOrderedSame) { 
    [email protected]"Keyword is Correct"; 

귀하의 경우 상태를 교체하거나 대신 isEqualToString: 방법을 사용할 수 있습니다.

이 모든 내용은 숙지해야하는 documentation에 있습니다.

4

-[NSString compare:]에 대한 설명서를 살펴보십시오. 부울을 반환하지 않고 NSComparisonResult을 반환합니다. 두 문자열이 같으면 NO에 해당하는 값은 0입니다. 대신 isEqualToString:을 사용해야합니다.