尝试检查"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
}