专栏名称: Adrenine
iOS开发
目录
相关文章推荐
51好读  ›  专栏  ›  Adrenine

iOS实战之后台返回数据为空造成程序崩溃

Adrenine  · 掘金  ·  · 2017-12-13 08:46

正文

#####方法一:使用AFNetworking进行请求过滤设置:

((AFJSONResponseSerializer *)manager.responseSerializer).removesKeysWithNullValues = YES;

#####方法二:使用runtime来给类别增加属性 NSNull+Safe.m

#import <objc/runtime.h>
#import <Foundation/Foundation.h>
static NSString *dataKey = @"key";

@interface NSNull ()

@property (strong, nonatomic) NSMutableDictionary *data;

@end

@implementation NSNull (Safe)

#pragma mark - LifeCycle

- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
{
    @synchronized([self class])
    {
        NSString *selString = NSStringFromSelector(selector);
        NSMethodSignature *signature = nil;
        
        NSRange range = [selString rangeOfString:@"set"];
        
        if (range.length) {
            signature = [NSMethodSignature signatureWithObjCTypes:"v@:@"];
        } else {
            signature = [NSMethodSignature signatureWithObjCTypes:"@@:"






请到「今天看啥」查看全文