字典:NSDictionary(不可变字典)、NSMutableDictionary(可变字典)、字面量

每个字典都相当于一个model类,model类更倾向于可变字典

1. NSDictionary(不可变字典)

所有的不可变变量,只能在初始化的时候赋值

1.1 创建字典

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"male", @"sex", @"20", @"age", @"Tom", @"name", @"Running", @"hobby", nil];

1.2 获取所有的key值和所有的value值

 (1) 所有的key值
NSArray *arr = [dic allKeys];
NSLog(@"%@", arr);
打印结果:

(

    age,

    sex,

    hobby,

    name

)

(2) 所有的Value值

NSArray *arr2 = [dic allValues];
NSLog(@"%@", arr2);
打印结果:

(

    20,

    male,

    Running,

    Tom

)

1.3 根据key值获取Value

NSString *str = [dic valueForKey:@"name"];
NSLog(@"%@", str);
打印结果:

Tom

1.4 遍历字典

 (1) 第一种for循环

NSArray *arr = [dic allKeys];
for (int i = 0; i < [arr count]; i++) {
     NSString *key = [arr objectAtIndex:i];
     NSLog(@"%@", [dic valueForKey:key]);
}
打印结果:

20

male

Running

Tom

(2)二种方法: forin  

for (NSString *key in dic) {
     // 根据key值获取Value值
     NSLog(@"%@: %@", key, [dic valueForKey:key]);
}

打印结果:

age: 20

sex: male

hobby: Running

name: Tom


2. NSMutableDictionary(可变字典)

2.1. 创建字典

NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"male", @"sex", @"20", @"age", nil];

2.2 增加键值对      

[mDic setValue:@"Tim" forKey:@"name"];
[mDic setObject:@"Running" forKey:@"hobby"];
for (NSString *key in mDic) {
     NSLog(@"%@: %@", key, [mDic valueForKey:key]);
}
打印结果:

age: 20

sex: male

hobby: Running

name: Tim

2.3 修改键值对

// 和增加键值对方法一样, 如果存在, 覆盖, 如果不存在, 添加
[mDic setValue:@"18" forKey:@"age"];
for (NSString *key in mDic) {
     NSLog(@"%@: %@", key, [mDic valueForKey:key]);
}

打印结果:

age: 18

sex: male

hobby: Running

name: Tim

2.4 删除键值对

(1)

[mDic removeObjectForKey:@"age"];
for (NSString *key in mDic) {
     NSLog(@"%@: %@", key, [mDic valueForKey:key]);
}
打印结果:

sex: male

hobby: Running

name: Tim

(2)
[mDic setValue:nil forKey:@"hobby"];
for (NSString *key in mDic) {
    NSLog(@"-%@: %@", key, [mDic valueForKey:key]);
}
打印结果:

sex: male

name: Tim


3.  字面量

NSNumber *number = @123;// 多态
NSString *string = @"123";// 字符串
NSArray *array = @[@"1", @"2"];// 数组 @[firstObj,...]
]
NSDictionary *dictionary = @{@"1":@"2"};// 字典 @{key:value,...}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值