objective-c可变字典
2 // 字典:通过key来取值的 key值必须是成对出现的,key不能为空(nil)
3 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"object",@"key",@"object2",@"key2", nil];
4 NSDictionary *dic1 = @{@"key1":@"object1",@"key2":@"object2",@"key3":@"object3",@"key4":@"object4"};
5 NSLog(@"%@",[dic objectForKey:@"key"]);
6 NSLog(@"%@",dic1[@"key2"]);
7 // dic.allKeys可以取出dic中所有的key值;
8 NSLog(@"%@",dic1.allKeys);
9 for(NSString *key in dic1.allKeys){
10 NSLog(@"%@",[dic1 objectForKey: key]);
11 }
12 #pragma mark *****************************可变字典********************************
13 // 可变字典:可以删除、替换(添加)
14 // NSMutableDictionary 可变字典的类名
15 NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];//初始化了一个空字典
16 [dictionary setObject:@"iphone " forKey:@"phone"];
17
18 [dictionary setObject:@"htc" forKey:@"phone"];
19 NSLog(@"%@",dictionary);
20 [dictionary removeObjectForKey:@"phone"];
21 NSLog(@"%@",dictionary);
22 // 不可以这种方式初始化NSMutableDictionary *dictionary =@{@"key1":@"object1",@"key2":@"object2"};
23 #pragma mark **************************字典之间的嵌套******************************
24 // 不可变数组
25 NSDictionary *date = @{@"id":@"110119",@"nick":@"小花",@"header":@"www.baidu.headeerImage.png",@"balance":@"100",};
26 NSDictionary *dictionary1 = @{@"code":@"200",@"data":date};
27 NSLog(@"%@",dictionary1);
28 // 可变数组
29 NSMutableDictionary *dict = [NSMutableDictionary dictionary];
30 [dict setObject:@(200) forKey:@"code"];
31 [dict setObject:date forKey:@"data"];
32
33 NSLog(@"%@",dict);
34 NSMutableDictionary *dict1 = [dict[@"data"] mutableCopy];
35 [dict1 setObject:@"www.baidu.taobao.Image.png" forKey:@"header"];
36 NSLog(@"%@",dict1);
37 // 输出呢称
38 NSLog(@"呢称是:%@",dictionary1[@"data"][@"nick"]);
39
40 // 判断code值是不是200,如果code的返回值是200 输出data字典里面的所有内容,如果不是200输出返回数据失败
41 switch ([dict[@"code"] integerValue]) {
42 case 200:{
43 NSLog(@"登陆成功");
44 NSDictionary *userInfo = dict[@"data"];
45 NSLog(@"呢称是%@",userInfo[@"nick"]);
46 }
47 break;
48 case 300:
49 NSLog(@"返回数据失败");
50 break;
51 case 310:
52 NSLog(@"用户失效");
53 break;
54 default:
55 NSLog(@"未知错误");
56 break;
57 }
58 //
59
60
61
62 NSMutableDictionary *liuDic0 = [NSMutableDictionary dictionary];
63 [liuDic0 setObject:@(200) forKey:@"code"];
64 NSDictionary *liuData0 = @{@"id":@"LiYongJun250",@"name":@"LiYongJun250",@"phone":@"15761672937",@"balance":@"1000.10",@"msgnum":@"20"};
65 [liuDic0 setValue:liuData0 forKey:@"data"];
66
67 NSMutableDictionary *liuDic1 = [NSMutableDictionary dictionary];
68 [liuDic1 setObject:@(200) forKey:@"code"];
69
70 NSDictionary *liuData1 = @{@"version":@"1.0.1",@"desc":@"LiYongJun250",@"url":@"www.baidu.LiYongJun250.com"};
71 [liuDic1 setObject:liuData1 forKey:@"data"];
72 NSInteger phoneNum = [liuDic0[@"data"][@"phone"] integerValue];
73 NSLog(@"手机号是:%ld",phoneNum);
74 NSLog(@"下载地址是:%@",liuDic1[@"data"][@"url"]);
75
76
77 #pragma mark **************************字典与数组之间的嵌套******************************
78
79 NSArray *arr = @[liuData0,@(111),@(2222),@(33333)];
80 NSLog(@"%@",arr);
81 NSDictionary *dicti = arr[0];
82 NSLog(@"%@",dicti);
83
执行结果:
2015-06-24 19:45:28.258 OC-NO-4-可变数组[806:83680] object
2015-06-24 19:45:28.259 OC-NO-4-可变数组[806:83680] object2
2015-06-24 19:45:28.260 OC-NO-4-可变数组[806:83680] (
key3,
key1,
key4,
key2
)
2015-06-24 19:45:28.260 OC-NO-4-可变数组[806:83680] object3
2015-06-24 19:45:28.260 OC-NO-4-可变数组[806:83680] object1
2015-06-24 19:45:28.260 OC-NO-4-可变数组[806:83680] object4
2015-06-24 19:45:28.260 OC-NO-4-可变数组[806:83680] object2
2015-06-24 19:45:28.260 OC-NO-4-可变数组[806:83680] {
phone = htc;
}
2015-06-24 19:45:28.260 OC-NO-4-可变数组[806:83680] {
}
2015-06-24 19:45:28.261 OC-NO-4-可变数组[806:83680] {
code = 200;
data = {
balance = 100;
header = "www.baidu.headeerImage.png";
id = 110119;
nick = "\U5c0f\U82b1";
};
}
2015-06-24 19:45:28.261 OC-NO-4-可变数组[806:83680] {
code = 200;
data = {
balance = 100;
header = "www.baidu.headeerImage.png";
id = 110119;
nick = "\U5c0f\U82b1";
};
}
2015-06-24 19:45:28.261 OC-NO-4-可变数组[806:83680] {
balance = 100;
header = "www.baidu.taobao.Image.png";
id = 110119;
nick = "\U5c0f\U82b1";
}
2015-06-24 19:45:28.299 OC-NO-4-可变数组[806:83680] 呢称是:小花
2015-06-24 19:45:28.299 OC-NO-4-可变数组[806:83680] 登陆成功
2015-06-24 19:45:28.300 OC-NO-4-可变数组[806:83680] 呢称是小花
2015-06-24 19:45:28.300 OC-NO-4-可变数组[806:83680] 手机号是:15761672937
2015-06-24 19:45:28.300 OC-NO-4-可变数组[806:83680] 下载地址是:www.baidu.LiYongJun250.com
2015-06-24 19:45:28.301 OC-NO-4-可变数组[806:83680] (
{
balance = "1000.10";
id = LiYongJun250;
msgnum = 20;
name = LiYongJun250;
phone = 15761672937;
},
111,
2222,
33333
)
2015-06-24 19:45:28.301 OC-NO-4-可变数组[806:83680] {
balance = "1000.10";
id = LiYongJun250;
msgnum = 20;
name = LiYongJun250;
phone = 15761672937;
}