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

您的代码看起来不错并且没有错误。一些可能的错误原因是

  1. usertext包含一个带空格的字符串。

    在这种情况下,isEqualToString与“admin”的比较将失败。

  2. 你检查错了UITextField,或者变量usertextnil

  3. 您错误地认为第一个条件失败。您是否使用断点进行过调试?

编辑:在 if 条件之前放置一些 NSLog 语句

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

我认为您正在尝试查看输入中是否包含“管理员”一词?

该方法isEqualToString:进行了精确比较,这意味着 usertext.text 需要完全是“admin”才能做到这一点。此外,如果这是真的,那么字符串长度将为 5,因此无需检查它是否小于 8。

如果你想知道它是否被包含,你需要这样做:

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