我想检查天气 aNSString
是否为空。我从 JSON 数组分配。分配该字符串值后为<null>
. 现在我想检查这个字符串是否为空。所以我这样放
if (myStringAuthID==nil)
但是这个 if 语句总是错误的。如何检查字符串是否为空。请帮我
谢谢
我想检查天气 aNSString
是否为空。我从 JSON 数组分配。分配该字符串值后为<null>
. 现在我想检查这个字符串是否为空。所以我这样放
if (myStringAuthID==nil)
但是这个 if 语句总是错误的。如何检查字符串是否为空。请帮我
谢谢
像那样:
[myString isEqual: [NSNull null]];
“null” NSString 有三种可能的解释:
someStringPtr == nil
(id)someStringPtr == [NSNull null]
someStringPtr.length == 0
如果您可能有所有 3 个选项,则第 3 个检查包含第一个,但我不知道对所有三个检查进行简单检查。
一般来说,JSON 会返回[NSNull null]
一个null
JSON 值,但有些工具包可能会返回@""
(length == 0)。 nil
永远不会在 iOS 中使用,因为它不能放在数组/字典中。
这是我创建的字符串类别的一部分:
@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
我认为最好在将其转换为 NSString 或其他任何内容之前进行检查,您有不同的选择,以上是正确的,但我更喜欢这个:
id NilOrValue(id aValue) {
if ((NSNull *)aValue == [NSNull null]) {
return nil;
}
else {
return aValue;
}
}
在将值传递给指针之前使用此代码段(注意这是一个 C 函数),您可以安全地传递一个值,或者如果 NSNull 中的值是 nil。传递 nil 很棒,因为如果您向 nil 对象发送消息,它不会引发异常。您还可以使用-isKindOfClass
.
试试if(myString == [NSNull null])
。那应该正确评估它。