检查字符串是否不等于另一个字符串



尝试检查"textfield"是否没有键入"AM"或"PM",如果没有,则不让用户向数据库提交数据。

我认为一些简单的事情,因为这应该工作,但似乎不太事实上,我得到NSLog每次我在任何一个字段中输入"AM"或"PM",但第一个NSLog显示"AM"或"PM"很好。我不知道是什么问题。

代码:

if(![self.suffix.text isEqualToString:@"AM"] || ![self.suffix.text isEqualToString:@"PM"] || ![self.suffix2.text isEqualToString:@"AM"] || ![self.suffix2.text isEqualToString:@"PM"] )
    {
        NSLog(@"S: %@, E: %@", self.suffix.text, self.suffix2.text);
        NSLog(@"Invalid time suffixes!");
    }
else
{
 // submit data
}

你的代码显示

if 
   (the suffix is not "AM")
   OR
   (the suffix is not "PM")

后缀不能同时是两者,所以如果是AM,也不可能是PM。

你想要

if 
   (the suffix is not "AM")
   AND
   (the suffix is not "PM")

你想要的形式!(s==AM || s==PM)s!=AM && s!=PM使用DeMorgan's。你的||应该是&&

如果值不是@"AM",它将打印日志行。如果不是@"PM",它也会打印。因为两者不能同时出现,所以它将始终打印

登录似乎不正确。

假设用户类型为"DM",

! [self.suffix。text isEqualToString:@"AM"]计算为[@"DM"isEqualToString:@"AM"],这是false。没有一个是真的。

所以必须是

 if(!([self.suffix.text isEqualToString:@"AM"] || [self.suffix.text isEqualToString:@"PM"] )&&
   !([self.suffix2.text isEqualToString:@"AM"] || [self.suffix2.text isEqualToString:@"PM"] ))
{
    NSLog(@"S: %@, E: %@", self.suffix.text, self.suffix2.text);
    NSLog(@"Invalid time suffixes!");
}
else
{
    // submit data
}

相关内容

最新更新