iOS开发过程中数据为空的各种情况

2017-06-16  本文已影响0人  编程_书恨少

在开发的过程当中,我们经常会遇到后端返回的数据为空的情况。
1、之前我们的后端语言用的是python,后端的全部接口都是和前端同步的,所以数据为空基本上只需要判断两种情况。

NSDictionary *dict = [NSDictionary dictionary];
    
    NSString *name = dict[@"name"];
    
    if (name != nil && name != 0) {
        
        // do something
    }

这样做数据为空的判断是最简单的,但是这中情况只出现在与你对接的后端数据非常靠谱的情况下。
2、后来换了一家公司,后端的语言用的是PHP,当然我也认为PHP是世界上最好的编程语言,没有之一,但是我遇到了很多种数据为空的情况。下面我们来详细的看一看各种“空数据”都怎么样判定。

+ (BOOL)isBlankString:(NSString *)str
{
    if (!str)
    {
        return YES;
    }
    
    if ([str isKindOfClass:[NSNull class]])
    {
        return YES;
    }
    
    if ([str isEqual:[NSNull null]])
    {
        return YES;
    }
    
    if ([str isEqual:@"null"])
    {
        return YES;
    }
    
    if (str == NULL)
    {
        return YES;
    }
    
    
    if ([[str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0)
    {
        return YES;
    }
    
    return NO;
}

在这里呢,小弟先给大家提供一个可以判定任何空数据的方法,大家只需要创建一个分类即可。不知道各位看到这个方法的第一反应是什么,有没有同学会觉得,为什么要用类方法呢,用对象方法不就可以了,因为本身这个方法就是NSString的分类方法,何必要用类方法呢,还要把字符串本身传进来。
有这个疑问的同学,那你的运行时肯定是没学好,一个空的对象调用任何方法都不会响应的。
上面我所判定的各种情况是我开发过程当中遇到过的(Swift中还有其他的空数据类型),这里我先只给出OC的工具,去年写了一年的Swift,很久没有整理东西了,欢迎大家补充。

上一篇下一篇

猜你喜欢

热点阅读