比较文本字段输入和字符串

时间:2013-01-28 12:14:18

标签: objective-c xcode4 uitextfield

您能否告诉我为什么此代码没有将文本字段中的输入文本与“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]; 
} 

2 个答案:

答案 0 :(得分:0)

我认为你试图看看输入中是否包含“admin”这个词?

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

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

if ([usertext.text rangeOfString:@"admin"].location != NSNotFound) {
    ...
}

答案 1 :(得分:0)

您的代码看起来很好,没有错误。一些可能的错误原因是

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

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

  2. 您正在检查错误的UITextField或变量usertextnil

  3. 你错误地认为第一个条件失败了。你有使用断点进行调试吗?
  4. 编辑:在条件

    之前放置一些NSLog语句
    NSLog(@"Username text : %@",usertext); 
    NSLog(@"password text : %@", inputText);