如何检查NSString是否为空

我想检查天气NSString是否为空。 我从一个JSON数组分配。 分配该string值之后是<null> 。 现在我想检查这个string是否为空。 所以我就这样放

if (myStringAuthID==nil)但是这个if语句总是为false。 我如何检查一个string为null。 请帮帮我

谢谢

像那样:

 [myString isEqual: [NSNull null]]; 

“空”NSString有三种可能的解释:

  1. someStringPtr == nil
  2. (id)someStringPtr == [NSNull null]
  3. someStringPtr.length == 0

如果你可能有3个,第三个支票包括第一个支票,但是我不知道这三个支票是简单的。

一般来说,JSON会返回一个null JSON值的[NSNull null] ,但是一些工具可能会返回@"" (length == 0)。 nil将不会在iOS中使用,因为它不能被放置在数组/字典。

试试if(myString == [NSNull null]) 。 这应该正确评估。

我认为这是最好的,如果你把它投到NSString之前检查或任何,你有不同的select,上面是正确的,但我更喜欢这个:

 id NilOrValue(id aValue) { if ((NSNull *)aValue == [NSNull null]) { return nil; } else { return aValue; } } 

在将值传递给一个指针之前,使用这个代码片段(注意这是一个C函数),你可以安全地传递一个值或者如果NSNull中的值是零。 传递nil非常好,因为如果你发送消息给一个零对象,它不会抛出一个exception。 您也可以使用-isKindOfClass检查类的types。

这里是我创build的string类别的一部分:

 @interface NSString (Enhancements) +(BOOL)isNullOrEmpty:(NSString *)inString; @end @implementation NSString (Enhancements) +(BOOL)isNullOrEmpty:(NSString *)inString { BOOL retVal = YES; if( inString != nil ) { if( [inString isKindOfClass:[NSString class]] ) { retVal = inString.length == 0; } else { NSLog(@"isNullOrEmpty, value not a string"); } } return retVal; } @end