您可以检查[string length] == 0
。这将检查它是否是有效但为空的字符串(@“”)以及是否为 nil,因为length
也会返回 0。
马克的答案是正确的。但是,我将借此机会包括一个指向 Wil Shipley 广义化的isEmpty
的指针,他在博客上分享了该指针:
static inline BOOL IsEmpty(id thing) {
return thing == nil
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}
第一种方法是有效的,但是如果您的字符串具有空格( @" "
),则该方法无效。因此,您必须在测试之前清除此空白。
这段代码清除了字符串两侧的所有空格:
[stringObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ];
一个好主意是创建一个宏,因此您不必键入以下怪物行:
#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]
现在您可以使用:
NSString *emptyString = @" ";
if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");