美文网首页iOS OC
解决IOS字典设置值为nil时崩溃

解决IOS字典设置值为nil时崩溃

作者: I_YoYo | 来源:发表于2018-04-22 11:20 被阅读525次

经常遇到NSMutableDictionary调用[setObject: forKey:]时,若obj为nil的时候会崩溃。使用运行时替换方法,并检查是否为nil.

#import "NSMutableDictionary+Obj.h"
#import <objc/runtime.h>

@implementation NSMutableDictionary (Obj)


+ (void)load {
    Method fromMethod = class_getInstanceMethod(objc_getClass("__NSDictionaryM"), @selector(setObject:forKey:));
    Method toMethod = class_getInstanceMethod(objc_getClass("__NSDictionaryM"), @selector(em_setObject:forKey:));
    method_exchangeImplementations(fromMethod, toMethod);
}

- (void)em_setObject:(id)emObject forKey:(NSString *)key {
    if (emObject && key) {
        [self em_setObject:emObject forKey:key];
    }
}
@end

相关文章

  • 解决IOS字典设置值为nil时崩溃

    经常遇到NSMutableDictionary调用[setObject: forKey:]时,若obj为nil的时...

  • IOS处理字典设置值为nil时崩溃

    经常遇到NSMutableDictionary调用[setObject: forKey:]时,若obj为nil的时...

  • MJExtesion模型转字典

    利用MJExtesion框架将模型转成字典,当模型中的属性值为nil时,转化的字典中没有属性值为nil的key.这...

  • IOS基础知识-异常崩溃处理篇

    常见的崩溃类型 1.数组越界,nil值初始化导致的崩溃。2.对字典插入nil值,或者读取NSNULL导致的崩溃。3...

  • iOS常见的崩溃

    数组越界 字面量数组和字典插入nil值 字典 Unrecognized Selector NaN崩溃 富文本初始化...

  • runtime 交换方法应用

    解决数组添加空值崩溃 解决字典添加空值崩溃 监控点击事件

  • 构建字典时注意nil

    联系两天收到两个bug,都是在构建字典是传入的对象为nil,导致的崩溃。如: 构建字典时一定要做nil检查,否则一...

  • swift- 可选值

    什么是可选值 - 可以设置为nil sweift - 默认不可以给设置为nil - 默认不...

  • iOS防止字典中的值为nil导致的崩溃

    一位大牛写的 Dictionary+NilSafe 防止字典中的数据为nil导致的崩溃,在项目中非常有用,以后在项...

  • go踩坑

    1.在值为nil的字典上执行读操作会成功吗,那写操作呢? 除了添加键 - 元素对,我们在一个值为nil的字典上做任...

网友评论

    本文标题:解决IOS字典设置值为nil时崩溃

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