这是我的字符串在控制台中的输出。
device type-------------(
mobile,
"<null>",
tablet
如何处理第二个值。我尝试了以下方式,但在这些行中应用程序无法正常工作。
if([dType isEqualToString:@"<null>"])
if([dType isEqualToString:@""])
if([dType isEqualToString:@"null"])
以上都不起作用。请指导以上。提前致谢。
if (dType == (NSString *)[NSNull null])
{
// your logic here
}
您可以检查[字符串长度] == 0。这将检查它是否是有效但为空的字符串 (@"")以及它是否为 nil,因为在 nil 上调用 length 也会返回 0。
或者,您也可以[string isEqual:[NSNull null]];
尝试
我在我的 Defines.h 文件中为此使用了两个宏
#define NULLVALUE(m) (m == nil ? @"" : m)
#define NULLVALUE1(m) (m == nil ? @" " : m)
它将空值更改为“”或空格“”易于处理。
你可以像这样检查
if ([YOUR_STRING isKindOfClass:[NSNull class]] || YOUR_STRING == nil ) {
}
+(NSString *) removeNull:(NSString *) string {
if ([string isEqual:[NSNull null]] ) {
return @"";
}
if ([string isEqualToString:@"<null>"]) {
return @"";
}
if ([string isEqualToString:@"null"]) {
return @"";
}
@try {
NSRange range = [string rangeOfString:@"null"];
////////NSLog(@"in removeNull : %d >>>> %@",range.length, string);
if (range.length > 0 || string == nil) {
string = @"";
}
range = [string rangeOfString:@"<null>"];
////////NSLog(@"in removeNull : %d >>>> %@",range.length, string);
if (range.length > 0 || string == nil) {
string = @"";
}
}
@catch (NSException *exception) {
return @"";
}
@finally {
}
string = [self trimString:string];
return string;
}
------------------------------ 像这样调用 NSString *strFb = [classname removeNull:YourString];