我有一个简单的计算器,但我的问题是如果用户没有在字段中输入任何数据,那么它仍然会计算。我以为我可以做到以下几点:
if (txtUserName.text == nil || txtUserName2.text == nil || txtUserName3.text == nil || txtUserName4.text == nil || txtUserName5.text == nil)
{
//error message
lblUserTypedName.text =@"Error - No Field Input";
}
else
{
lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
}
但它根本不起作用。任何帮助让我知道我在这里失踪的人将不胜感激。我想用||因此,即使他们输入除了一个以外的所有字段,它仍会捕获它。
答案 0 :(得分:4)
你会想做[txtUserName.text isEqualToString:@""]
之类的事情,因为空字符串与nil对象不同。您还可能希望从字符串中删除空格,然后再检查它们是否为空,具体取决于您的应用程序的功能。我会在UITextField编辑委托方法中使用空格剥离,而不是在此方法中。
编辑:
if ([txtUserName.text isEqualToString:@""] || [txtUserName2.text isEqualToString:@""] || [txtUserName3.text isEqualToString:@""] || [txtUserName4.text isEqualToString:@""] || [txtUserName5.text isEqualToString:@""])
{
//error message
lblUserTypedName.text =@"Error - No Field Input";
}
else
{
lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
}
答案 1 :(得分:1)
我建议使用NSString的length方法来确定是否有任何输入。所以你可以使用
if ([txtUserName.text length]== 0 || [txtUserName2.text length]== 0 || [txtUserName3.text length]== 0 || [txtUserName4.text length]== 0 || [txtUserName5.text length]== 0)
{
//error message
lblUserTypedName.text =@"Error - No Field Input";
}
else
{
lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
}
这适用于text属性为nil(根据文档的默认值)和text属性为空字符串。
另请注意,这仍然执行计算,它只是不显示它。如果要阻止计算,则需要移动代码以将ultimate_risk
计算到else块中。
答案 2 :(得分:0)
如果您想检查多个字符串,可以执行此操作
if([txtUserName.text isEqualToString:@""] ||
[txtUserName2.text isEqualToString:@""] ||
[txtUserName3.text isEqualToString:@""] ||
[txtUserName4.text isEqualToString:@""] ||
[txtUserName5.text isEqualToString:@""]
)
{
//error message
lblUserTypedName.text =@"Error - No Field Input";
}
else
{
lblUserTypedName.text = [[NSString alloc] initWithFormat: @"%2.1f%%", ultimate_risk];
}