如果文本字段为空,则对iPhone执行此操作
我有一个简单的计算器可以工作,但我的问题是,如果用户没有在字段中输入任何数据,那么它仍然可以计算。我想我可以做到以下几点:如果文本字段为空,则对iPhone执行此操作,iphone,Iphone,我有一个简单的计算器可以工作,但我的问题是,如果用户没有在字段中输入任何数据,那么它仍然可以计算。我想我可以做到以下几点: if (txtUserName.text == nil || txtUserName2.text == nil || txtUserName3.text == nil || txtUserName4.text == nil || txtUserName5.text == nil) { //error message lblUserT
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];
}
但它根本不起作用。任何帮助让我知道我在这里错过了什么将不胜感激。我想使用| |,所以即使他们输入了除一个字段以外的所有字段,这仍然会捕获它。您需要执行类似于
[txtUserName.text isEqualToString:@”“]
的操作,因为空字符串与nil对象不同。在检查字符串是否为空之前,您可能还希望从字符串中去掉空白,这取决于您的应用程序所做的操作。我会在UITextField编辑委托方法中使用空格剥离,而不是在这个方法中
编辑:
您将需要执行类似于
[txtUserName.text isEqualToString:@”“]
的操作,因为空字符串与nil对象不同。在检查字符串是否为空之前,您可能还希望从字符串中去掉空白,这取决于您的应用程序所做的操作。我会在UITextField编辑委托方法中使用空格剥离,而不是在这个方法中
编辑:
我建议使用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];
}
这将适用于文本属性为nil(根据文档,这是默认值)和文本属性为空字符串
还要注意的是,它仍然执行计算,只是不显示它。如果要阻止计算,需要将用于计算
最终风险的代码移动到else块。我建议使用NSString的长度方法来确定是否有任何输入。所以你可以用
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];
}
这将适用于文本属性为nil(根据文档,这是默认值)和文本属性为空字符串
还要注意的是,它仍然执行计算,只是不显示它。如果要阻止计算,需要将用于计算最终风险的代码移动到else块。如果要检查多个字符串,可以执行此操作
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];
}
如果要检查多个字符串,可以这样做
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];
}
您希望它阻止计算,还是阻止显示计算?在这一点上,哪个更容易?您希望它阻止计算,还是阻止显示计算?在这一点上,哪个更容易?但我如何才能将其放入if/else?因为如果用户有我想要计算的输入数据,如果他们没有,我不想计算。只需将txtUserName.text==nil
替换为[txtUserName.text IsequalString:@”“]
。在我的答案中添加了完整的示例代码。bodnarbm的字符串长度技术也很有效。我以为我用的是相同的代码,但它给了我一个错误。我做错了什么?()HollerTrain,我想它停止了,因为你在行前设置了一个断点。。。要么删除断点(编辑器窗口左侧的蓝色选项卡),要么在断点关闭的情况下运行(command-option-r),但如何将其放入if/else?因为如果用户有我想要计算的输入数据,如果他们没有,我不想计算。只需将txtUserName.text==nil
替换为[txtUserName.text IsequalString:@”“]
。在我的答案中添加了完整的示例代码。bodnarbm的字符串长度技术也很有效。我以为我用的是相同的代码,但它给了我一个错误。我做错了什么?()HollerTrain,我想它停止了,因为你在行前设置了一个断点。。。删除断点(编辑器窗口左侧的蓝色选项卡)或在断点关闭的情况下运行(command-option-r)。当我尝试使用此代码时,它确实会启动模拟器,但会直接在上面使用的if语句处停止。思想?()当我尝试使用这段代码时,它确实会启动模拟器,但会直接在上面使用的if语句处停止。思想?()