A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© keeganlee 中级黑马   /  2015-3-7 08:34  /  973 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一:字典的基本概念
    Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样.
    通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的.
    此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象
    二:不可变字典-NSDictionary
    1:初始化(以一个元素和多个元素进行初始化):
    //以一个键值对象 进行初始化
NSDictionary *dict1=[NSDictionary dictionaryWithObject:numObj1 forKey:@"key1"];        NSLog(@"%@",dict1);        //以多个元素进行初始化        NSDictionary *dict2=[NSDictionary dictionaryWithObjectsAndKeys:numObj1, @"key1",numObj2,@"key2", nil];        NSLog(@"%@",dict2);
2:获取字典的数量
    //获取字典的数量
    NSInteger count=[dict2 count];
    NSLog(@"%ld",count);
    3:根据key获取相应的value对象
    //根据key获取相应的value对象
NSString *value=[dict2 objectForKey:@"key1"];        NSLog(@"%@",value);
4:把字典的key转换成枚举对象用于遍历
    NSEnumerator *enumerator=[dict2 keyEnumerator];
    5:获取所有的key集合
    //获取所有的key集合
NSArray *keys= [dict2 allKeys];        NSLog(@"%@",keys);
6:获取所有的value集合
    //获取所有的value集合
NSArray *values=[dict2 allValues];        NSLog(@"%@",values);
三:可变字典NSMutableDictionary继承自NSDictionary
    1:初始化字典
//初始化字典        NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
2:向字典中添加指定的字典
    //向一个字典中添加一个字典
NSDictionary *dict4=[NSDictionary dictionaryWithObject:@"v6" forKey:@"k6"];        [mutableDic addEntriesFromDictionary:dict4];        NSLog(@"%@",mutableDic);
3:向字典中添加value和key
//向字典中添加value和key        [mutableDic setValue:@"object" forKey:@"key"];
4:创建空的字典,然后设置新的一个字典
   
//创建空的字典,然后设置新的一个字典,把会之前的字典全部覆盖掉        NSMutableDictionary *mutableDict2=[NSMutableDictionary dictionary];        [mutableDict2 setDictionary:mutableDic];        NSLog(@"%@",mutableDict2);
5:删除指定key的value值
//移除指定key的value值        [mutableDict2 removeObjectForKey:@"k4"];        NSLog(@"%@",mutableDict2);
6:删除移除key集合的value值
//删除一组key的value值        NSArray *arrayKeys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];        [mutableDict2 removeObjectsForKeys:arrayKeys];        NSLog(@"%@",mutableDict2);
7:删除字典中所有的value
    //删除字典中所有的数据
[mutableDict2 removeAllObjects];        NSLog(@"%@",mutableDict2);
四:枚举遍历
    1:一般遍历
    //一般遍历
NSArray *allKeys=[mutableDic allKeys];        for (NSInteger i=0; i<[allKeys count]; i++) {            NSString *obj=[mutableDic objectForKey:[allKeys objectAtIndex:i]];                        NSLog(@"%@",obj);        }
    2:快速枚举
    //快速遍历
for (id key in mutableDic) {        NSString *object=[mutableDic objectForKey:key];        NSLog(@"%@",object);    }
3:迭代器枚举
//枚举器      NSEnumerator *enumerator1= [mutableDic keyEnumerator];        id key=[enumerator1 nextObject];        while (key) {            id bject=[mutableDic objectForKey:key];            NSLog(@"%@",object);            key=[enumerator1 nextObject];        }

1 个回复

倒序浏览
看不太懂啊。我得赶紧去看Oc了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马