0

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

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

当我在条件之前控制台登录 userAssignedName 时,我得到了我所期望的,什么都没有。

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

4

2 回答 2

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"];
}

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

于 2012-12-07T15:29:35.280 回答
0

替换这个:

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

和:

if (userAssignedName.length > 0) {

您不想使用:

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

因为 if userAssignedNameis ,当您希望它失败时nil,此语句将成功。if

于 2012-12-07T15:36:51.323 回答