NSDictionary及NSMutableDictionary

来源:互联网 发布:淘宝开店协议无法同意 编辑:程序博客网 时间:2024/05/29 15:46
/*    NSDictionary    作用:通过key值,访问value值    注意:key值和value值都是对象    键值对集合的特点:       1.key值重复的只能保存一个,并且是第一个。而NSMutableDictionary则是保存最后一个       2.根据key值找value值       3.键值对中存储的数据是无效的    NSMutableDictionary       NSDictionary创建的字典是不可变的,也就是不能惊醒增删修改,而NSMutableDictionary可以,而且他继承自NSDictionary */#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){    @autoreleasepool {    //NSDictionary        //创建空字典        NSDictionary *dict1 = [NSDictionary dictionary];        NSLog(@"dict1 = %@",dict1);        //创建只有一对键值对的字典        NSDictionary *dict2 = [NSDictionary dictionaryWithObject:@"liuda" forKey:@"1"];        NSLog(@"dict2 = %@",dict2);        //创建有多个键值对的字典,如果出现相同的key值,那么第一个被保存,后面相同key值的不被保存        NSDictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"suner",@"2",@"zhangsan",@"3",@"lisi",@"4", nil];        NSLog(@"dict3 = %@",dict3);        //快速创建字典{。。key值:value值,。。。}        NSDictionary *dict4 = @{@"key1":@"value1",@"key2":@"value2"};        NSLog(@"dict4 = %@",dict4);    //NSDictionary的操作        //获取当前字典有多少对键值        NSLog(@"%lu",dict4.count);        //根据键值获取value值        NSString *str = [dict4 objectForKey:@"key2"];        NSLog(@"%@",str);        //遍历字典(第一步:获取所有的key值,第二步:根据key值,获取value值)        //第一种方法        NSLog(@"dict3 = %@",dict3);        for(NSString *key in dict3){            NSLog(@"%@ = %@",key,[dict3 objectForKey:key]);        }        //第二种方法(block)        [dict3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {            NSLog(@"%@ = %@",key,obj);        }];        NSLog(@"Hello, World!");    //NSMutableDictionary        //创建空字典        NSMutableDictionary *ndic1 = [NSMutableDictionary dictionary];        NSLog(@"ndic1 = %@",ndic1);        //创建只含有一个键值对的字典        NSMutableDictionary *ndic2 = [NSMutableDictionary dictionaryWithObject:@"value1" forKey:@"key1"];        NSLog(@"ndic2 = %@",ndic2);        //创建有多个键值对的字典,如果出现相同的key值,那么第一个被保存,后面相同key值的不被保存        NSMutableDictionary *ndic3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value2",@"key2",@"value3",@"key3",@"value4",@"key4", nil];        NSLog(@"ndic3 = %@",ndic3);        //快速创建        NSMutableDictionary *ndic4 = @{@"key5":@"value5",@"key6":@"value6",@"key7":@"value7"};        NSLog(@"ndic4 = %@",ndic4);    //NSMutableDictionary的操作        //添加        [ndic1 setObject:@"zhuhoulin1" forKey:@"1"];        [ndic1 setObject:@"zhuhoulin2" forKey:@"2"];        [ndic1 setObject:@"zhuhoulin3" forKey:@"3"];        [ndic1 setObject:@"zhuhoulin4" forKey:@"1"];//setObject不仅仅是添加的作用,他也有修改的作用        NSLog(@"ndic1 = %@",ndic1);        //删除          //根据key值删除键值对        [ndic1 removeObjectForKey:@"1"];        NSLog(@"ndic1 = %@",ndic1);          //删除所有键值对        [ndic1 removeAllObjects];        NSLog(@"ndic1 = %@",ndic1);        //修改,同添加使用相同的方法        [ndic1 setObject:@"wunw" forKey:@"3"];        NSLog(@"ndic1 = %@",ndic1);          //简写方法         ndic1[@"2"] = @"wwwww";        NSLog(@"ndic1 = %@",ndic1);        //查找        NSArray *arr = [ndic1 allKeys];        BOOL Is = [arr containsObject:@"5"];//查看是否包含该key值的元素        NSLog(@"%d",Is);        //遍历字典(第一步:获取所有key值,第二步根据key值获取value值)        NSLog(@"ndic3 = %@",ndic3);        for(NSString *str in ndic3){            NSLog(@"%@ = %@",str,[ndic3 objectForKey:str]);//发现打印的时候乱序,尽量键值中不要出现key+数字(key10,key9==)        }        [ndic3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {            NSLog(@"%@ = %@",key,obj);        }];    }    return 0;}
0 0
原创粉丝点击