字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。
不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。
不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。
一、NSDictionary的基本操作
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];//初始化键,值,两个
NSArray *objs = @[@"jack",@"beijing"];
NSArray *keys = @[@"name",@"adress"];//定义两个数组,然后进行初始化多组键值
NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:objs forKeys:keys];//初始化多组键值
//也可以这样初始化
NSDictionary *dict3 = @{@"name":@"jack",@"adress":@"japan" };
id obj = [dict3 objectForKey:@"name"]; //根据键值进行查询
id obj = dict3[@"name"]; //根据键值进行查询(更简洁)
NSLog(@"%@",obj);
NSLog(@"%ld",dict3.count);//返回键值对个个数,此处为2
//字典遍历的两种方式
NSDictionary *dict5 =@{
@"name": @"jack1",
@"adress": @"china",
@"qq":@"234234",
@"name1": @"jack1",
@"adress2": @"china",
};//初始化字典
NSArray *keyss = [dict5 allKeys];//首先取出来字典中所有的值,存放到数组中
for (int i = 0 ; i < dict5.count; i ++)//for循环进行遍历
{
NSString *key = keyss[i];//用key来存储键
NSString *objects = dict5[key];//用objects存放查找出来的值
NSLog(@"%@ == %@ ",key,objects);
}
<span style="color:#ff0000;"> //字典遍历的方式2</span>
[dict5 enumerateKeysAndObjectsUsingBlock://利用block来循环输出字典
^(id key, id obj, BOOL *stop)
{
NSLog(@"%@ == %@ ",key,obj);
}];
NSMutableDictionary *mudc1 = [NSMutableDictionary dictionary];
[mudc1 setObject:@"jack" forKey:@"name"];//添加键值对
[mudc1 removeObjectForKey:@"jack"]; //移除键值对
NSLog(@"111%@",mudc1); // 打印字典内容
NSDictionary *dict4 = @{@"name":@"jack",@"adress":@"japan" };
NSDictionary可以如上初始化,但是NSMutableDictionary不能这样初始化