字典的基本用法
来源:互联网 发布:罗永浩 支那人 知乎 编辑:程序博客网 时间:2024/06/07 12:21
1.字典初始化的方法
首先还是来看看如何创建字典。先看两个最常用的初始化方法:
+ (id)dictionaryWithObject:(id)anObject forKey:(id)aKey
+ (id)dictionaryWithObjectsAndKeys:(id)firstObject , ...
第1个方法一般用于单对键/值对字典的初始化;第2个方法一般用于多对键/值对字典的初始化。直接看范例:
NSDictionary * dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];
NSDictionary * dic2 = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1", @"key1", @"value2", @"key2", nil];
dic1有一对键/值对,就是@"value"和@"key",dic2有两对键/值对,分别是@"value1"和@"key1"、@"value2"和@"key2"。注意与数组那个方法类似,这里也需要一个"nil "结尾。
注意:dictionaryWithObjectsAndKeys这个方法很容易出错,主要是没有数清键/值对的个数,经常会漏掉某个或者错写,一定要引起重视,因为如果第一次写不好,后面查起来会很费精力。
2.字典取值的方法
之前提到人好比就是对象,名字好比就是关键字,从一个名字是可以找到一个人的,这个方法就是:
- (id)objectForKey:(id)aKey
看一个简单的例子就能明白这个方法的用法:
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1", @"key1", @"value2", @"key2", nil];
id value = [dic objectForKey:@"key1"];
这里value的值就是@"value1",理解起来应该没有任何障碍吧?
3.可变字典的使用方法
接下来看看可变字典的一些常规使用方法:
- (void)setObject:(id)anObject forKey:(id)aKey
- (void)removeObjectForKey:(id)aKey
细心的读者可能会问:难道就这两个吗?不应该还有个addObject吗?
这里只有这两个:如果一个键/值对存在,setObject这个方法就是修改;如果一个键/值对不存在,这个方法就是增加。下面看个例子:
NSString *LAST=@"lastName";
NSString *FIRST=@"firstName";
NSMutableDictionary *dict=[NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Jo", FIRST, @"Smith", LAST, nil];
NSString *MIDDLE=@"middleInitial";
//添加
[dict setObject: @"M" forKey:MIDDLE];
很明显,这里是添加,因为原本并没有@"middleInitial"这个关键字,如果将其改为如下代码:
NSString *LAST=@"lastName";
NSString *FIRST=@"firstName";
NSMutableDictionary *dict=[NSMutableDictionary dictionaryWithObjectsAnd-
Keys:
@"Jo", FIRST, @"Smith", LAST, nil];
//修改
[dict setObject: @"M" forKey:LAST];
那么所做的就是修改了,将@"Smith"变成了@"M"。
移除的用法也很简单,举例如下:
NSString *LAST=@"lastName";
NSString *FIRST=@"firstName";
NSMutableDictionary *dict=[NSMutableDictionary dictionaryWithObjectsAnd-
Keys:
@"Jo", FIRST,@"Smith", LAST, nil];
//移除后一个键/值对
[dict removeObjectForKey: LAST];
现在 dict里面就只有一个键/值对了。
另外NSMutableDictionary还提供一个整体拼接字典的方法:
- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary
这个方法在进行多个字典拼接的时候非常有用,举例如下:
//先定义需要使用的KEY
NSString *LAST=@"lastName";
NSString *FIRST=@"firstName";
NSString *SUFFIX=@"suffix";
NSString *TITLE=@"title";
NSMutableDictionary *dict=[NSMutableDictionary dictionaryWithObjectsAndKeys:
@"Jo", FIRST, @"Smith", LAST, nil];
NSDictionary *newDict=[NSDictionary dictionaryWithObjectsAndKeys:
@"Jones", LAST, @"Hon.", TITLE, @"J.D.", SUFFIX, nil];
//合并两个字典
[dict addEntriesFromDictionary: newDict];
这个方法会改变 dict字典对象的LAST所对应的值,另外再添加@"Hon."和TITLE、@"J.D. "和SUFFIX两个键/值对。
- 字典的基本用法
- 字典的基本用法
- swift3.0 字典的基本用法
- python中字典的基本用法
- OC中字典基本用法
- Swift 字典 Dictionary基本用法
- Objective-C 字典的基本用法(NSDictionary和NSMutableDictionary)
- 字典的基本操作
- 【QTP】字典的用法
- 字典get的用法
- python 字典的用法
- c#中字典(Dictionary)基本用法
- 字典树的基本操作
- Python-字典的基本操作
- Python 字典的基本操作
- Oracle的基本数据字典
- python 字典的 setdefault用法
- python 字典的 setdefault用法
- 杭电OJ 1072图搜 Nightmare(bfs)(图搜)
- RoboCup
- 如何正确的把PDF转换成Word、PPT、Excel、JPG
- java数字转换为字符串,长度不够前面补0
- shell脚本的学习
- 字典的基本用法
- MySQL子查询
- HTML 5 video 视频标签全属性详解
- java中怎么使用json字符串
- redis订阅关闭异常解决
- TS详解
- Android 之从底部弹出PopupWindow
- 函数的注释模板
- 将float转换为数据类型numeric时出现算术溢出错误