美文网首页
iOS开发过程中数据为空的各种情况

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

作者: 编程_书恨少 | 来源:发表于2017-06-16 16:27 被阅读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,很久没有整理东西了,欢迎大家补充。

    相关文章

      网友评论

          本文标题:iOS开发过程中数据为空的各种情况

          本文链接:https://www.haomeiwen.com/subject/xplmqxtx.html