Foundation框架NSDictionary

集合——字典

字典是由键--值对组成的数据组合。正如我们在字典里查找单词的定义一样。

通过key(键),查找对应value(值),key通常是字符串对象,也可以是其他任意类型对象。在一个字典对象中,key的值必须是唯一的。字典对象的键和值不可以为空(nil),如果需要在一个字典对象中表示一个空值(value),可以使用NSNull对象


不可变字典NSDictionary

(集合中只能用对象或类的实例,不可以用基本数据类型)

字典的初始化

NSNumber *numObj = [NSNumber numberWithInt:100];  //把基本数据类型封装成对象


以一个元素初始化

NSDictionary *dic = [NSDictionary dictionaryWithObject:numObj  forKey:@"key"];

或NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"k1"];

NSLog(@"dic1  : %@",dic1);

输出为:k1 = value;


初始化两个元素

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:numObj,@"valueKey",numObj2,@"valueKey2",nil];

或:NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",nil];


初始化新字典,新字典包含otherDic

NSDictionary *dic = [NSDictionary dictionaryWithDictionary:otherDic];


以文件内容初始化字典

NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];

 

字典的常用方法

 

获取字典数量

NSInteger  count = [dic count];

 

通过key获取对应的value对象

NSObject *valueObj = [dic objectForKey:@"key"];

 

将字典的key转成一个枚举对象,用于遍历

NSEnumerator * enumerator = [dic keyEnumerator];

 

获取所有键的集合

NSArray *keys = [dic allKeys];

 

获取所有值的集合

NSArray *values = [dic allValues];

 

 可变字典 NSMutableDictionary常用方法

NSMutableDictionary * mutableDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",nil];

NSDictionary * dic3 = [NSDictionary dictionaryWithObject:@"v4",@"k4"];

向字典对象中添加整个字典对象

[mutableDic  addEntriesFromDictionary:dic3];


向字典对象中追加一个新的k3,v3

[mutableDic setValue:@"v3"forKey:@"k3"];


初始化一个空的可变字典

NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];


将空字典1对象内容设置与字典mutableDic对象相同

[dic1 setDictionary:mutableDic];


 将字典中key1对应的值删除

[dic1 removeObjectForKey:@"key1"];


根据指定的数组(key)移除字典1的内容

NSArray *array  = [NSArray arrayWithObjects:@"key1",nil];

[dic removeObjectsForKeys:array];


移除字典所有对象

[dic removeAllObjects];


遍历字典

快速枚举

for(id key in dic){

id obj = [dic objectForKey:key];

NSLog(@"%@",obj);

}

一般的枚举

NSArray *keys = [dic allKeys];

int length = [keys count];

for(int i=0;i<length;i++){

id key = [keys objectAtIndex:i];

id obj = [dic objectForKey:key];

NSLog(@"%@",obj);

使用枚举类型

NSEnumerator *enumerator = [mutableDic keyEnumerator];

id key = [enumerator nextObject];

while(key){

id object = [mutableDic objectForKey:key];

NSLog("object : %@",object);

key = [enumerator nextObject];

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值