0

这是我的字符串在控制台中的输出。

device type-------------(
mobile,
"<null>",
tablet

如何处理第二个值。我尝试了以下方式,但在这些行中应用程序无法正常工作。

if([dType isEqualToString:@"<null>"])
if([dType isEqualToString:@""])
if([dType isEqualToString:@"null"])

以上都不起作用。请指导以上。提前致谢。

4

6 回答 6

1
 if (dType == (NSString *)[NSNull null])
    {
       // your logic here
    }
于 2013-02-13T05:23:27.187 回答
0

而不是比较字符串。始终建议您检查字符串的长度。像 :

[yourString length] == 0

并且,检查状况。你也可以检查这个。希望这有帮助。

于 2013-02-13T05:12:36.587 回答
0

您可以检查[字符串长度] == 0。这将检查它是否是有效但为空的字符串 (@"")以及它是否为 nil,因为在 nil 上调用 length 也会返回 0。

或者,您也可以[string isEqual:[NSNull null]];尝试

于 2013-02-13T05:12:45.907 回答
0

我在我的 Defines.h 文件中为此使用了两个宏

#define NULLVALUE(m)                    (m == nil ? @"" : m)
#define NULLVALUE1(m)                    (m == nil ? @" " : m)

它将空值更改为“”或空格“”易于处理。

于 2013-02-13T05:15:49.937 回答
0

你可以像这样检查

if ([YOUR_STRING isKindOfClass:[NSNull class]] || YOUR_STRING == nil ) {

}
于 2013-02-13T05:33:24.813 回答
0
+(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];

于 2013-02-13T05:52:42.957 回答