`
lizaochengwen
  • 浏览: 666290 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

慎用dictionaryWithObjectsAndKeys方法

阅读更多
有这样一段代码:

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显然很隐蔽。

原文作者:颐和园

原文链接:http://blog.csdn.net/kmyhy/archive/2010/12/17/6082394.aspx
分享到:
评论

相关推荐

    IOS软件工程师笔试题(全选择题)【0-1年经验】.pdf

    13. NSDictionary:NSDictionary是一个不可变字典,可以通过字面量或者dictionaryWithObjectsAndKeys方法创建。 14. NSLog输出类型:NSLog函数输出不同类型的数据需要使用正确的格式化占位符,例如:%d用于整数,%@...

    uiwebview的使用方法总结

    [NSKeyedArchiver archiveRootObject:[NSDictionary dictionaryWithObjectsAndKeys:@"username", @"username", @"password", @"password", nil] toFile:@"user.plist"]; // 加载数据 NSDictionary *userInfo = ...

    iOS抓包工具的使用方法

    [request setRequestHeaders:[NSMutableDictionary dictionaryWithObjectsAndKeys: @"api.maopao.com:80", @"Host", @"iPhone:6.0.1/maopaopaipai:1.3.6/source:mppp_I_app/deviceinfo:iPhone3,1", @"User-Agent",...

    Objective-C词典对象的使用总结

    - objectsForKeys:notFoundMarker: 根据给定键数组返回对象数组,缺失的键可以用notFoundMarker指定。 至于NSMutableDictionary的常用方法还包括: - setObjects:forKeys:notFoundMarker: 设置多个键值对; - ...

    iphone数组学习

    - **[NSDictionary dictionaryWithObjectsAndKeys:ankush, @"TA", janestudent, @"Student", nil];** - 用键值对创建`NSDictionary`。 - **[NSArray arrayWithContentsOfFile:(NSString *)path];** - 从文件路径...

    自己总结的面试题

    - **`NSDictionary`:** 可以通过 `[NSDictionary dictionaryWithObjectsAndKeys:]` 或者 `@{@"zs": @"zhaosi", @"ls": @"lisi"}` 来创建不可变字典。 #### 8. 集合对象的内存管理 (MRC) - **加入集合:** 当对象...

    NSDictionary帮助文档

    例如,可以使用`@{}`语法创建一个包含键值对的字典,或者通过`NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:...];`来初始化一个字典对象,其中`objects`和`keys`参数分别指代值和键的...

    ios开发记录

    //initWithNibName将控制器绑定xib的方法,如果xib的名称和控制器的类名称相同的时候,直接写init(会自动绑定同名的xib)就可以,如果xib的名称和类名称不同的话,必须手动调用此方法来进行绑定 ...

    iOS读写json文件的方法示例

    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:array,@"1",@"dongdong", @"name", nil]; if ([NSJSONSerialization isValidJSONObject:dic]) { NSData *jsonData = [NSJSONSerialization ...

    iPhone常见面试题

    NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil]; [dic setObject:@"value3" forKey:@"key3"]; [dic removeObjectForKey:@"key3"]; ...

    Objective-C Json 实例详解

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"title", @"title", @"desc", @"desc", @"price", @"price", nil]; NSArray *myProduct = [NSArray arrayWithObjects:dict, dict, dict, ...

    object-c insert

    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Value1", @"Key1", @"Value2", @"Key2", nil]; [dict setObject:@"NewValue" forKey:@"NewKey"]; // 插入新的键值对 ``` 三、...

    LCSoapWebservice:LCSoap网络服务

    与soap webservice服务通信的简单方法 如何使用 : 第 1 步:将 \classes\ 文件夹复制到您的项目中 第 2 步:导入 LCSoapDelegate.h 第 3 步:实施协议 第 4 步:创建您的肥皂参数,例如: NSString *xmlns = @" ...

    自己写的一个存取.plist文件Demo

    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Value1", @"Key1", @"Value2", @"Key2", nil]; // 将字典转化为NSData NSData *data = ...

    iOS UIAlertView自动关闭功能

    [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(dismissAlert:) userInfo:[NSDictionary dictionaryWithObjectsAndKeys:alert, @"alert", @"testing ", @"key", nil] repeats:NO];...

    Objective-C中的语法糖示例详解

    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil]; id value = [dictionary objectForKey:@"key1"]; ``` 而使用语法糖,可以采用键值对的...

    parserDataWithKissXml

    XmlDictionary = [NSDictionary dictionaryWithObjectsAndKeys: data.user,@"kUsers", data.title,@"kTitles", data.content,@"kContents", nil]; [self performSelectorInBackground:@selector(parsedXml:) ...

    EasyPostHelper-iOS:通过iOS访问EasyPost Shipping API

    EasyPostHelper-iOS 通过iOS访问EasyPost ...NSMutableDictionary *dictionaryForParcel = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"8",@"parcel[length]", @"6",@"parcel[width]", @"5",@"parcel[hei

    ios面试总结

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:d, s, nil]; [cacheArr addObject:dict]; createImage: UIImage *img = [[UIImage alloc] initWithData:d]; return [img autorelease]; } ...

Global site tag (gtag.js) - Google Analytics