美文网首页程序开发
iOS开发丨解决json中null/NSNull导致闪退的问题

iOS开发丨解决json中null/NSNull导致闪退的问题

作者: 炼心术师 | 来源:发表于2019-12-19 16:24 被阅读0次

    在网络请求中,有时候会遇到返回值为NSNull的情况,如果直接赋值给对象会导致崩溃。

    解决方法

    创建一个NSNull类的扩展NSNull+NullCast,来处理不同情况下的null、NSNull值,如下:

    创建文件时选择Objective-C File 文件类型选择Category,Class选择NSNull

    .h文件

    #import <Foundation/Foundation.h>
    
    @interface NSNull (NullCast)
    
    @end
    

    .m文件

    #import "NSNull+NullCast.h"
    
    @implementation NSNull (NullCast)
    
    - (float)floatValue { return 0.0; }
    
    - (int)intValue { return 0; }
    
    - (NSUInteger)length { return 0; }
    
    - (NSInteger)integerValue { return 0; };
    
    - (NSString *)description { return @"0(NSNull)"; }
    
    - (NSString *)stringValue { return @""; };
    
    - (NSArray *)componentsSeparatedByString:(NSString *)separator {return @[]; }
    
    - (id)objectForKey:(id)key { return nil; }
    
    - (BOOL)boolValue { return NO; }
    
    - (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet {
        NSRange nullRange = {NSNotFound, 0};
        return nullRange;
    }
    

    这样,即使是遇到NSNull,也能自动转换成对应类型的初始化值,而不是导致程序崩溃。

    相关文章

      网友评论

        本文标题:iOS开发丨解决json中null/NSNull导致闪退的问题

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