来自UITextField的iOS NSString - 检查值

时间:2012-12-07 15:21:10

标签: ios nsstring

在我的应用程序中,我有一个对话框,用户可以在其中输入一些信息到UITextField中。在继续之前,我需要检查UITextField.text值是否等于某事(当用户单击提交按钮时捕获该值)。但是,我的条件(见下文)仍然失败。

if (userAssignedName || userAssignedName.length > 0 || ![userAssignedName isEqualToString:@""]) {
 //do something
} else { 
[alertManager showAlert:@"You must enter a name for this OR"];
}

当我在条件之前控制日志userAssignedName时,我得到了我所期望的,没有。

如何检查以确保字符串有价值?

2 个答案:

答案 0 :(得分:4)

解决方案很简单。 3个值中的任何一个都返回YES / true值。

![userAssignedName isEqualToString:@""]

检查您的字符串是否等于空字符串。 (这可能是你默认的文本字段?)这很好。

userAssignedName.length > 0

检查字符串中的字符。这也没关系,除非你不需要它。它主要用于在文本字段中保留最大字符数。

userAssignedName

检查实际变量是否被实例化。并且不会也不应该以任何方式涉及用户输入。如果你删除它,你的支票不会失败。

解决方案:

if (/*userAssignedName.length > 0 ||*/ ![userAssignedName isEqualToString:@""]) 
{
    //do something
} 
else 
{ 
    [alertManager showAlert:@"You must enter a name for this OR"];
}

这应该可以解决问题。无论你是否使用评论都取决于你。

答案 1 :(得分:0)

替换它:

if (userAssignedName || userAssignedName.length > 0 || ![userAssignedName isEqualToString:@""]) {

使用:

if (userAssignedName.length > 0) {

您不想使用:

if (![userAssignedName isEqualToString:@""]) {

因为如果userAssignedNamenil,那么当您希望它失败时,此if语句就会成功。