Cocoa是否具有类似于.NET的String.IsNullOrEmpty的功能?

use*_*328 2 .net string cocoa isnullorempty

可能重复:
如何在Objective C中测试字符串是否为空?

我一直在查看Apple的文档中的一个相对基本的函数,我无法想象它们没有函数来查看字符串是否为空/空或空白空间.我也谷歌搜索过这个.我发现的唯一的事情是人们就如何创建自己的函数来测试空字符串提供建议.

在.NET中,我只能说

If (String.IsNullOrEmpty(txtTextBox.Text)) {
// Action
}
Run Code Online (Sandbox Code Playgroud)

Cocoa是否与.NET的String类中的IsNullOrEmpty等效?

Sto*_*now 7

你可以检查一下[string length] == 0.这将检查它是否是有效但空字符串(@"")以及它是否为nil,因为在nil上调用length也将返回0.

编辑:在阅读上面的评论之后,我意识到我错过了你的一个问题,不仅是空/零,还有空格(技术上不是空的).我不知道检查所有这三个条件的内置方法,但一个简单的解决方案是在测试期间修剪字符串中的空白.例如:

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

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

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

来源:如何在Objective C中测试字符串是否为空?