0

このコードがテキスト フィールドの入力テキストを「admin」文字列と比較しない理由を教えてください。

if ([usertext.text isEqualToString:@"admin"]) {                 
     if ([inputText length] <= 8) {
            return [self method2];
     }
     return [self method];
}

編集:実際のコード

-(void)method1{ 
  NSString *usertext=[uname text]; 
  NSString *inputText = [typepassword text]; 

  if ([usertext isEqualToString:@"admin"]) { 
     if( [inputText length] <= 8 ) { 
        return [self method2]; 
     } 
     return [self method]; 
  } 
  moviesViewController *moviesViewcont = [[moviesViewController alloc] init]; 
  [self.navigationController pushViewController:moviesViewcont animated:YES]; 
} 
4

2 に答える 2

0

入力に「admin」という単語が含まれているかどうかを確認しようとしていると思いますか?

メソッドisEqualToString:は正確な比較を行います。つまり、それが真であるためには、usertext.text が正確に「admin」である必要があります。また、そうであれば文字列の長さは 5 になるので、8 より短いかどうかのチェックは不要です。

含まれているかどうかを知りたい場合は、次のようにする必要があります。

if ([usertext.text rangeOfString:@"admin"].location != NSNotFound) {
    ...
}
于 2013-01-28T12:19:08.400 に答える
0

あなたのコードは見栄えがよく、エラーはありません。考えられるエラーの理由は次のとおりです。

  1. にはusertext、スペースを含む文字列が含まれています。

    その場合、isEqualToString「admin」との比較は失敗します。

  2. 間違った をチェックしているUITextFieldか、変数usertext が ですnil

  3. 最初の条件が失敗したと考えて間違いを犯しました。ブレークポイントを使用してデバッグを行いましたか?

編集 : if 条件の前に NSLog ステートメントを配置します

NSLog(@"Username text : %@",usertext); 
NSLog(@"password text : %@", inputText);
于 2013-01-28T12:27:38.067 に答える