如何检查NSString是否为空
我想检查天气NSString
是否为空。 我从一个JSON数组分配。 分配该string值之后是<null>
。 现在我想检查这个string是否为空。 所以我就这样放
if (myStringAuthID==nil)
但是这个if语句总是为false。 我如何检查一个string为null。 请帮帮我
谢谢
像那样:
[myString isEqual: [NSNull null]];
“空”NSString有三种可能的解释:
-
someStringPtr == nil
-
(id)someStringPtr == [NSNull null]
-
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