IOS-慎用dictionaryWithObjectsAndKeys方法
2016-05-10 15:15
615 查看
原文地址:原文地址
有这样一段代码:
NSDictionary* items2=[NSDictionary dictionaryWithObjectsAndKeys:
[d objectForKey:@"GZDBH"],@"工作单编号",
[d objectForKey:@"LDSJ"],@"来电时间",
[d objectForKey:@"SLWCSJ"],@"受理完成时间",
[d objectForKey:@"SLR"],@"受理人",
[d objectForKey:@"ZJHM"],@"主叫号码",
[d objectForKey:@"LXR"],@"联系人",
[d objectForKey:@"LXDH"],@"联系电话",
[d objectForKey:@"BXDZ"],@"报修地址",
[d objectForKey:@"CLLX"],@"故障类型",
[d objectForKey:@"JRLX"],@"接入类型",
[d objectForKey:@"CLQY"],@"处理区域",
[d objectForKey:@"FWJB"],@"服务级别",
[d objectForKey:@"JJCD"],@"紧急程度",
[d objectForKey:@"YXFW"],@"影响范围",
[d objectForKey:@"QKMS"],@"受理情况",
nil];
但是后来发现items2中始终只有一个对象“工作单编号“,检查后发现,其中“来电时间”对象是空,而dictionaryWithObjectsAndKeys方法在遇到nil对象时,会以为是最终的结束标志。于是items中只放了一个对象就初始化结束了,而且不管编译和运行中都不会报错,这样的bug显然很隐蔽。
有这样一段代码:
NSDictionary* items2=[NSDictionary dictionaryWithObjectsAndKeys:
[d objectForKey:@"GZDBH"],@"工作单编号",
[d objectForKey:@"LDSJ"],@"来电时间",
[d objectForKey:@"SLWCSJ"],@"受理完成时间",
[d objectForKey:@"SLR"],@"受理人",
[d objectForKey:@"ZJHM"],@"主叫号码",
[d objectForKey:@"LXR"],@"联系人",
[d objectForKey:@"LXDH"],@"联系电话",
[d objectForKey:@"BXDZ"],@"报修地址",
[d objectForKey:@"CLLX"],@"故障类型",
[d objectForKey:@"JRLX"],@"接入类型",
[d objectForKey:@"CLQY"],@"处理区域",
[d objectForKey:@"FWJB"],@"服务级别",
[d objectForKey:@"JJCD"],@"紧急程度",
[d objectForKey:@"YXFW"],@"影响范围",
[d objectForKey:@"QKMS"],@"受理情况",
nil];
但是后来发现items2中始终只有一个对象“工作单编号“,检查后发现,其中“来电时间”对象是空,而dictionaryWithObjectsAndKeys方法在遇到nil对象时,会以为是最终的结束标志。于是items中只放了一个对象就初始化结束了,而且不管编译和运行中都不会报错,这样的bug显然很隐蔽。
相关文章推荐
- 关于C++和Objective-C混编
- org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
- [Objective-c开源库]HHRouter
- Objective-C代码行数统计
- Object类
- objective-c - 基础篇 - KVO键值转换设计模式
- 内存管理(16.5.10)
- Ubuntu下如何安装并使用Objective-C
- object-c中get/set方法
- C#4.0中的dynamic关键字和ExpandoObject对象
- 关于runtime的objc_getClass和object_getclass
- objective-c - 基础篇 - KVC键值转换设计模式
- objectARX判断当前坐标系
- Fatal error: Using $this when not in object context in parent2.php
- Wordpress里提示警告信息creating default object from empty value in *** 的解决方法
- Java JSONObject后首字母变小写的问题
- Objective-c 学习笔记(一)
- JavaScript:Object类型
- iOS SDK开发时,有关OC和C++混编造成其它类错误的问题(Compile Sources As Objective-C++)
- Q_OBJECT宏的作用