【问题标题】:Does Cocoa have a function similar to .NET's String.IsNullOrEmpty? [duplicate]Cocoa 有没有类似于 .NET 的 String.IsNullOrEmpty 的功能? [复制]
【发布时间】:2012-12-18 02:53:05
【问题描述】:

可能重复:
How do I test if a string is empty in Objective C?

我一直在查看 Apple 的文档以寻找一个相对基本的函数,但我无法想象他们不会有一个函数来查看字符串是空/nil 还是空空格。我也用谷歌搜索过这个。我发现的唯一事情是人们就如何创建自己的函数来测试空字符串提供建议。

在 .NET 中,我要说的是

If (String.IsNullOrEmpty(txtTextBox.Text)) {
// Action
}

Cocoa 是否具有与 .NET 的 String 类中的 IsNullOrEmpty 等价的功能?

【问题讨论】:

  • IMO 该功能几乎没用,即使在 .net 中也是如此。将null 和空字符串视为对我来说是糟糕的设计。大多数刺痛永远不应该是null
  • 我真的只关心检查空字符串以确保用户没有输入空格。所以如果我检查一个字符串是否为@"",不管有多少个空字符,它都会返回true吗?
  • 嗯,这是我在发布自己的帖子之前找到的最后一个帖子。它并没有真正回答我的问题,因为关注的是空格,所以检查字符数是否为 0 是行不通的。

标签: .net string cocoa isnullorempty


【解决方案1】:

你可以检查[string length] == 0。这将检查它是否是 有效但为空的字符串 (@"") 以及它是否为零,因为调用 nil 的长度也将返回 0。

编辑:在阅读了您上面的评论后,我意识到我错过了您对空/nil 以及空格(技术上不是空的)的担忧之一。我不知道检查所有这三个条件的内置方法,但一个简单的解决方案是在测试期间从字符串中删除空格。例如:

NSString *str = @"   ";    //3 white spaces
if([str stringByTrimmingCharacterInSet: [NSCharacterSet whitespaceCharacterSet]] length] == 0)
{
        NSLog(@"String is empty, nil or full of whitespace!");
}

结果String is empty, nil or full of whitespace!

如果更适合您的需求,您也可以使用whitespaceAndNewlineCharacterSet。我建议创建一个单独的方法,例如StringIsNullOrEmpty,它接受一个字符串并执行上述测试。

来源:How do I test if a string is empty in Objective C?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    相关资源
    最近更新 更多