β

笔记-NSDictionary与NSMutableDictionary-20150407

NSDictionary常用功能

[/c](1) 初始化字典
NSDictionary *dic=[NSDictionary dictionaryWithObject:@"hechen" forKey:@"name"];
NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys:@"hechen",@"name",@"25",@"age", nil];
NSDictionary *dic2=[[NSDictionary alloc] init];

NSLog(@"%d",[dic count]);
NSLog(@"%d",[dic1 count]);
NSLog(@"%d",[dic2 count]);

三种方式来初始化字典对象:
. [[NSDictionary alloc] init] 方法最为常见了,先给NSDictionary分配空间再初始化;
. 使用dictionaryWithObject forkey 该方法在初始化的时候提供了两个参数,第一个为存储的值,第二个为key,这里的key是放在后面的。
. 使用dictionaryWithObjectsAndKeys 这个方法同样用于初始化NSDictionary,这里可以传入多个值,奇数为value值,偶数为key值,但是必须以nil形式结尾。这个和之前的NSArray,NSSet一致,标识集合的结束。

(2)获得NSDictionary中Keys的迭代

NSEnumerator *enumer=[dic1 keyEnumerator];
        NSString *key2=[enumer nextObject];
        while(key2!=nil){
            NSLog(@"输出Key=%@",key2);
            key2=[enumer nextObject];
        }
用keyEnumerator 方法获取NSDictionary Key的集合迭代,然后使用迭代器遍历输出所有的元素。

(3)获取NSDictionary中的Values的迭代
NSEnumerator *enumerObject=[dic1 objectEnumerator];
        for(NSObject *object in enumerObject){
            NSLog(@"输出Value = %@",object);
        }
(4)根据Key获取Value

NSString *va=[dic1 objectForKey:@"name"];
        NSLog(@"objectForKey = %@",va);

NSMutableDictionary 动态字典

(1) dictionaryWithCapacity方法设置其初始容量

NSMutableDictionary *muDic1=[NSMutableDictionary dictionaryWithCapacity:10];
初始化了一个NSMutableDictionary对象,并且设置其初始容量为10; 和NSMutableArray,NSMutableSet一样,当存储的元素达到最大容量之后会自动扩充容量
(2) 往NSMutableDictionary中添加元素

[muDic1 setObject:@"中国" forKey:@"name"];
        [muDic1 setObject:@"area" forKey:@"add"];
        NSEnumerator *enumerKeys=[muDic1 keyEnumerator];
        for(NSString *key in enumerKeys){
            NSString *value=[muDic1 objectForKey:key];
            NSLog(@"输出的值 = %@",value);
        }

(3) 删除字典中的元素

[muDic1 removeObjectForKey:@"add"];
        for(NSString *key in [muDic1 keyEnumerator]){
            NSLog(@"-----%@",[muDic1 objectForKey:key]);
        }
- (void)removeObjectsForKeys:(NSArray *)keyArray;这个方法参数为一个数组,用于删除数组中包含的key的所有元素。

[muDic1 removeObjectsForKeys:[NSArray arrayWithObjects:@"ab", nil]];
[muDic1 removeAllObjects];
for(NSString *key in [muDic1 keyEnumerator]){
    NSLog(@"*********%@",[muDic1 objectForKey:key]);
}1
作者:PHP/Python/C/C++/Lua/Golang/Erlang代码库
开发感悟、资料收集:我的目标LINUX内核架构
原文地址:笔记-NSDictionary与NSMutableDictionary-20150407, 感谢原作者分享。