在处理字典crash的问题的时候遇到了这个情况,在没有交换方法的时候字典一直不crash查阅了一部分资料发现了一些有趣的东西。
setValue调用该方法的时候字典里面传nil不会蹦
setObject调用这个方法的时候就会崩溃
其原因是系统已经在setValue方法里面已经处理了
系统setValue当你传入nil的时候系统会调用removeObjectForKey方法
注:1.NSDictionary没有removeObjectForKey方法使用该方法还是crash
2.如果传入 [NSNull null]是都不会crash(具体请去看nil,NSNull,NULL这几个的区别)
网友评论