NSString Comparison不适用于iPAD

时间:2016-11-23 14:23:22

标签: ios objective-c iphone ipad nsstring

当我尝试在if条件下比较两个NSString时,我遇到了这个奇怪而简单的问题。它适用于iPhone,但在iPad上它不起作用。 我有四个UITextFields,所有人都有delegate = self。在textFieldShouldBeginEditing后,我正在返回NO,并且调用该方法为:

if (textField==self.dx1Field)
    {
        [self.view endEditing:YES];
        [self showDXViewForField:@"1"];
        return NO;
    }
    else if (textField==self.dx2Field)
    {
        [self.view endEditing:YES];
        [self showDXViewForField:@"2"];
        return NO;
    }
    else if (textField==self.dx3Field)
    {
        [self.view endEditing:YES];
        [self showDXViewForField:@"3"];
        return NO;
    }
    else if (textField==self.dx4Field)
    {
        [self.view endEditing:YES];
        [self showDXViewForField:@"4"];
        return NO;
    }
    else return YES;

方法showDXViewForField打开了另一个ViewController tableView,其中显示了一些用户将从中选择一个值的值,并且它工作正常。
我已成为代表获取所选DX值的方法在这里我已应用检查,如果四个文本字段中的任何一个具有该值,则不添加它并显示它已被添加。

-(void)getSelectedDX:(NSString*)dxName forField:(NSString *)fieldNumber
{

    if ([fieldNumber isEqualToString:@"1"]) {

        if (self.dx2Field.text!=dxName&&self.dx3Field.text!=dxName&&self.dx4Field.text!=dxName) {
            self.dx1Field.text = dxName;
        }
        else
        {
            [KSToastView ks_showToast:@"This DX is already added!" duration:2.0f];
        }

    }
    else if ([fieldNumber isEqualToString:@"2"])
    {
        NSLog(@"%@==%@",self.dx1Field.text,dxName);
        if (self.dx1Field.text!=dxName&&self.dx3Field.text!=dxName&&self.dx4Field.text!=dxName) {
            self.dx2Field.text = dxName;
        }
        else
        {
            [KSToastView ks_showToast:@"This DX is already added!" duration:2.0f];
        }
    } //and same for 3 and 4

问题是,当我在iPAD上运行它时,它不起作用。它为文本视图设置重复值,但在iPhone上运行相同的代码。

1 个答案:

答案 0 :(得分:1)

您正在比较指针,而不是指针所代表的值。您的所有self.dx1Field.text!=dxName样式比较都应使用isEqualToString

相关问题