2011-07-03 2 views
0

iOS SDKでアプリケーションを作成しており、ユーザーはコンテンツにアクセスするためにパスワードを入力する必要があります。 If-Elseステートメントを使用してパスワードを確認しています。問題は、If-elseステートメントが後方に働いていて、そうではないことです。例:ユーザーが正しいパスワードを入力すると、ラベルテキストに「Wrong Password」と表示されます。ユーザーが間違ったパスワードを入力すると、ラベルテキストに「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を返します(正確には、0であるNSOrderedSameを返します)。

あなたは

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

またはその代わりにisEqualToString:メソッドを使用して、あなたの場合は条件を置き換えることができます。

このすべては、あなたが慣れるべきでdocumentation、です。

4

-[NSString compare:]のドキュメントを見てみましょう。ブール値を返さず、むしろNSComparisonResultを返します。 2つの文字列が等しい場合は、戻り値は0で、これはNOに相当します。代わりにisEqualToString:を使用してください。

関連する問題