0

我不知道为什么这不起作用,我觉得这真的很愚蠢..我正在尝试比较两个文本字段(例如确认密码类型),但它只是不起作用!我尝试了几种不同的选择,但都没有奏效。我试过了:

if (passwordCheckField1.text == passwordCheckField2.text) {
        [self performSegueWithIdentifier:@"segue4" sender:nil];
    }

我试过了:

NSString *retrivedPasswordCheckField1 = passwordCheckField1.text;
NSString *retrivedPasswordCheckField2 = passwordCheckField2.text;
if ([retrivedPasswordCheckField1 isEqualToString:retrivedPasswordCheckField2]) {
        [self performSegueWithIdentifier:@"segue4" sender:nil];
    }

我试过了:

if ([passwordCheckField1.text isEqualToString:retrivedPasswordCheckField2.text]) {
        [self performSegueWithIdentifier:@"segue4" sender:nil];
    }

我已经<UITextFieldDelegate>在 .h 中实现了,我还为这两个字段设置了代表,(passwordCheckField1.delegate = self; passwordCheckField2.delegate = self;

我错过了什么????谢谢你的帮助!

编辑

我可能应该提到我正在使用带有几个子视图控制器的导航控制器。每个都包含一个文本字段,因此当有关第一个密码的视图控制器出现时,用户输入它,然后单击下一步将它们带到确认密码视图控制器。所有都链接到相同的类文件。

4

5 回答 5

4

这应该有效。

NSString *password = passwordCheckField1.text;
NSString *confirmPassword = passwordCheckField2.text;

NSLog(@"password: '%@'", password);
NSLog(@"confirmPassword: '%@'", confirmPassword);

if([password isEqualToString: confirmPassword]) {
       NSLog(@"Match");

} else {
        NSLog(@"Not Match");

}
于 2013-09-24T12:36:40.847 回答
1
if (passwordCheckField1.text == passwordCheckField2.text) {
    [self performSegueWithIdentifier:@"segue4" sender:nil];
}

上面的代码不比较两个字符串值。它实际上比较了两个指针的值。所以它对你没有用。

但是代码

if ([retrivedPasswordCheckField1 isEqualToString:retrivedPasswordCheckField2]) { [self performSegueWithIdentifier:@"segue4" sender:nil]; }

应该比较字符串值。可能是字符串,您的值不同或nil. 你有没有打印 passwordCheckField1.textpasswordCheckField2.text。两个字符串的值是什么?

于 2013-09-24T12:40:08.323 回答
1

检查你的价值观。

 if ([passwordCheckField1.text isEqualToString:passwordCheckField2.text]) {   
    //Match it's working for me 
 }
于 2013-09-24T12:43:26.003 回答
0

作为预防措施,在比较之前尝试修剪前导空格和尾随空格的密码字符串

NSString *pwd1 = [pwdTxtField1.text stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" "]];
于 2013-09-24T17:01:51.830 回答
0

尝试这个

if([[passwordCheckField1 text] isEqualToString:[passwordCheckField2 text]])
{
    [self performSegueWithIdentifier:@"segue4" sender:nil];
}
else
{
   //not matched
}
于 2013-09-24T12:44:55.273 回答