iOS -- NSDictionary 两种初始化方式的区别
来源:互联网 发布:java开源电商系统 编辑:程序博客网 时间:2024/06/02 01:20
方法1: [NSDictionary dictionaryWithObjectsAndKeys:<#(id), ...#>, nil]
方法2: NSDictionary *dic = @{@"key":value}
区别在哪里?
区别就在第二种初始化方法 NSDictionary *dic = @{@"key":value}
如果你的value是为nil 必将引发崩溃:
'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]
意思就是说使用[__NSPlaceholderDictionary initWithObjects:forKeys:count:]这个初始化方法,发现keys count和objcects的个数不匹配了
如何规避?
在使用@{@”key”:value} 这种方式初始化的时候,一定要对value做是否为nil的判断,如果为ni,l就不要加入Dictionary
或使用标准的初始化方法:
NSDictionary dictionaryWithObjectsAndKeys:value1,@"v1",value2,@"v2",value3,@"v3", nil];
或其它的几个初始化方法进行初始化,这样如果value为nil就不会加入字典,使用 objectForKey:取出来的对象就会为nil对象,不会引发崩溃。
0 0
- iOS -- NSDictionary 两种初始化方式的区别
- iOS 使用xib创建cell的两种初始化方式
- 两种初始化方式的区别(总结)
- String对象两种初始化方式的区别
- ios给NSMutableDictionary循环赋值的两种方式,在循环内初始化NSMutableDictionary和在循环外初始化NSMutableDictionary有何区别?(已解决)
- c++构造函数成员初始化中赋值和初始化列表两种方式的区别
- iOS开发 NSDictionary初始化的坑
- iOS--NSDictionary字典的初始化增删
- iOS NSDictionary初始化问题
- Spring WebApplicationContext的两种初始化方式
- 数组初始化的两种方式
- UIImage的两种初始化方式
- 字符串初始化的两种方式
- 初始化类成员的两种方式
- c++类的构造函数两种初始化成员方式的区别
- 数组的初始化两种方式?初始化常见错误
- IOS初始化控制器的两种方法
- UIImage两种初始化的区别
- CCApplicationProtocol学习笔记
- Java基础之知识总结
- 搭建Spring环境
- composer 创建一个github 项目,然后可以通过composer下载
- Java中如何把一组对象按照其某一个属性值进行排序?
- iOS -- NSDictionary 两种初始化方式的区别
- python-杨辉三角
- CSS学习笔记5-字体
- Strassen矩阵乘法 分治与递归
- linux(所有版本)下安装有道词典
- 自定义View时,用到Paint Canvas的一些温故,PropertyAnimation中的ValueAnimator(动画四,“大大姐”的旋转跳跃no.2)
- 参数配置
- 关于iOS 委托 代理 协议 的理解
- ios ShareSDK进行短信分享(没有UI版)