`
wsqwsq000
  • 浏览: 685014 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用dictionaryWithObjectsAndKeys时的注意事项

 
阅读更多

 

有这样一段代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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显然很隐蔽。

 

分享到:
评论

相关推荐

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

    4. **注意事项**: - 保存数据时确保文件路径正确,且有写权限。 - 当处理大文件或性能敏感的场景时,避免直接使用`dataWithContentsOfFile:`和`writeToFile:atomically:`,因为它们会阻塞主线程。考虑使用异步...

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

    - dictionaryWithObjectsAndKeys: 初始化字典时设置键值对; - count: 返回字典中键值对的数量; - keyEnumerator: 返回一个用于枚举字典键的NSEnumerator对象; - objectsForKeys:notFoundMarker: 根据给定键数组...

    IOS RSA公私钥生成IOS RSA公私钥生成

    注意,iOS的安全最佳实践建议不要在应用本地存储私钥,而是将其存储在服务器上,只在需要时通过安全通道获取。此外,公钥也可以用Base64编码后以字符串形式在网络上传输。 总结,iOS中的RSA公私钥生成涉及到...

    ios面试总结

    - **注意事项**: 在使用 ARC 时通常不需要手动调用。 **3. AutoreleasePool** - **作用**: 延迟释放对象,直到当前的 autorelease pool 被释放。 - **使用场景**: 在循环或批量操作中,减少内存峰值。 **4. ...

    iOS抓包工具的使用方法

    需要注意的是,当涉及到文件上传时,通常会使用`multipart/form-data`格式的请求体。 #### 六、设置请求头 除了基本的GET和POST请求之外,有时还需要设置特定的请求头来满足服务器的要求。例如,在上面的POST请求...

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

    7. NSLog的格式化字符串:正确使用NSLog输出字符串时,需要使用正确的格式化占位符,%@用于输出对象。 8. Objective-C的导入语法:Objective-C中使用#import语法导入头文件,而C语言使用#include。#import可以避免...

    uiwebview的使用方法总结

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

    NSDictionary帮助文档

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

    iPhone常见面试题

    - **类型安全**:使用`NSNumber`时,编译器会在转换类型时进行检查,增加了代码的安全性。 #### 2. 使用`NSLog`函数输出浮点类型并四舍五入 要在`NSLog`中输出一个浮点数并使其四舍五入到一位小数,可以先使用`...

    自己总结的面试题

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

    object-c insert

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

    iphone数组学习

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

    LCSoapWebservice:LCSoap网络服务

    如何使用 : 第 1 步:将 \classes\ 文件夹复制到您的项目中 第 2 步:导入 LCSoapDelegate.h 第 3 步:实施协议 第 4 步:创建您的肥皂参数,例如: NSString *xmlns = @" "; NSString *method = @"SoapMethod"; ...

    iPhone Application Programming L02: Interface Builder

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"Peter", @"first_name", @"Smith", @"last_name", nil]; id first_name = [dict objectForKey:@"first_name"]; NSString *key; for (key in ...

    iOS读写json文件的方法示例

    在读取json文件时,首先从文件中读取NSData对象,然后使用NSJSONSerialization类将其转化为foundation对象: ```objectivec NSData *jsonData = [[NSFileManager defaultManager] contentsAtPath:jsonPath]; id ...

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

    Objective-C中的语法糖是编程语言中的一种特性,它使得代码更加简洁、易读,而不会改变语言...然而,使用时也需要注意,虽然语法糖让代码看起来更短,但过度依赖可能会降低代码的清晰度,因此在实际开发中应适度使用。

    Objective-C Json 实例详解

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

    parserDataWithKissXml

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

    iOS UIAlertView自动关闭功能

    在iOS开发中,`...请注意,从iOS 8开始,Apple推荐使用`UIAlertController`替代`UIAlertView`,因为它提供了更强大的自定义和布局能力。不过,对于兼容旧版本iOS的应用,`UIAlertView`仍然是一个有效的选择。

Global site tag (gtag.js) - Google Analytics