iOS NSMutableDictionary setValue和setObject

在处理字典crash的问题的时候遇到了这个情况,在没有交换方法的时候字典一直不crash查阅了一部分资料发现了一些有趣的东西。


setValue

调用该方法的时候字典里面传nil不会蹦


setObject

调用这个方法的时候就会崩溃

其原因是系统已经在setValue方法里面已经处理了


系统setValue

当你传入nil的时候系统会调用removeObjectForKey方法

注:1.NSDictionary没有removeObjectForKey方法使用该方法还是crash

       2.如果传入 [NSNull null]是都不会crash(具体请去看nil,NSNull,NULL这几个的区别)

    

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录: 在字符串查看指定字符串 UILabel自适应 服务器数据处理 copy解释 对象及可变字典赋值取值方法 n...
    Ryan___阅读 757评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,174评论 1 32
  • 前言:面试笔试都是必考语法知识点。请认真复习和深入研究OC。 目录:iOS-面试题-OC基础篇 (1) - (84...
    麦穗0615阅读 4,294评论 0 33
  • 面向对象的三大特性:封装、继承、多态 OC内存管理 _strong 引用计数器来控制对象的生命周期。 _weak...
    运气不够技术凑阅读 1,166评论 0 10
  • 关键词/关键类 1.#import跟#include有什么区别,@class呢,#import<>跟#import...
    丶逐渐阅读 1,502评论 0 1