我想检查天气NSString
是否为空。我从JSON数组分配。分配该字符串后,值为<null>
。现在我想检查这个字符串是否为null。所以我这样说了
if (myStringAuthID==nil)
但此if语句始终为false。我如何检查字符串为null。请帮帮我
由于
答案 0 :(得分:62)
就像那样:
[myString isEqual: [NSNull null]];
答案 1 :(得分:10)
“null”NSString有三种可能的解释:
someStringPtr == nil
(id)someStringPtr == [NSNull null]
someStringPtr.length == 0
如果你可能有3个,第3个检查包含第一个,但我不知道对这三个检查的简单检查。
通常,JSON将返回[NSNull null]
null
JSON值,但某些工具包可能会返回@""
(长度== 0)。 nil
永远不会在iOS中使用,因为它不能放在数组/词典中。
答案 2 :(得分:1)
试试if(myString == [NSNull null])
。这应该适当地评估它。
答案 3 :(得分:1)
我认为如果你在将它投射到NSString或其他之前检查是最好的,你有不同的选择,以上是正确的,但我更喜欢这个:
id NilOrValue(id aValue) {
if ((NSNull *)aValue == [NSNull null]) {
return nil;
}
else {
return aValue;
}
}
在将值传递给指针之前使用此片段(注意是C函数),如果NSNull中的值,则可以安全地传递值或nil。传递nil很棒,因为如果你向一个nil对象发送一条消息,它就不会抛出异常。您还可以使用-isKindOfClass
检查班级类型。
答案 4 :(得分:1)
以下是我创建的字符串类别的一部分:
@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