iOS实战之后台返回数据为空造成程序崩溃
2017-03-30 16:33
519 查看
方法一:使用AFNetworking进行请求过滤设置:
方法二:使用runtime来给类别增加属性
NSNull+Safe.m
((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:"@@:"]; } return signature; } } - (void)forwardInvocation:(NSInvocation *)invocation { NSString *key = NSStringFromSelector(invocation.selector); NSRange range = [key rangeOfString:@"set"]; if (range.length) { key = [[key substringFromIndex:3] lowercaseString]; id obj; [invocation getArgument:&obj atIndex:2]; [self.data setObject:obj forKey:key]; } else { id obj = self.data[key]; [invocation setReturnValue:&obj]; } } #pragma mark - Private - (NSMutableDictionary *)data { NSMutableDictionary *data = objc_getAssociatedObject(self, &dataKey); while (!data) { objc_setAssociatedObject(self, &dataKey, [NSMutableDictionary dictionary], OBJC_ASSOCIATION_COPY_NONATOMIC); data = objc_getAssociatedObject(self, &dataKey); } return data; } @end
相关文章推荐
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- iOS项目开发中,对后台返回数据为<null>时候的处理,避免取值产生程序崩溃问题
- iOS JSON返回的数据有NSNull导致程序崩溃及ios nil、NULL和NSNull的区别
- 程序退到后台在返回,application中的缓存数据被回收,导致程序异常
- iOS项目中由于后台数据返回null导致的错误解决
- 解决服务器返回错误数据格式导致Json解析出错造成app崩溃
- ios开发-程序压后台后,悄悄的抓取数据~~
- 微信小程序 request返回的数据,模拟成功,但是在安卓机和IOS上都不成功
- 微信小程序实验二、小程序后台PHP入门——从数据库中读取与返回数据视频讲解
- 程序调试优化一:浏览器端查看、抓取后台返回数据的方法
- IOS-网络请求数据解析道数组程序崩溃问题
- 造成IOS程序崩溃的几种可能的原因
- iOS 下载图片 -当后台返回的数据是文件流而不是图片url
- iOS 后台返回的HTML数据怎么解析
- 使用ASP.NET的C#语言写后台如何将数据返回给微信小程序的JS
- 微信小程序,请求php后台返回json数据多出隐藏字符问题
- iOS处理数据(后台返回的数据根据某个字段分为多个section)
- [iOS] 过滤后台返回nil的数据
- iOS 用webView加载后台返回的HTML数据
- 接口参数如果后台返回"<null>",IOS 前台会崩溃,返回“”OK