NSDictionary类声为用于管理键值对的不可变联系的对象声明了程序设计的接口(用任意值来检索数据)。
NSDictionary用来创建静态字典,NSMutableDictionary则创建动态字典。(dictionary是指这些类中没有说明其具体的类成员关系的任意实例。)
字典中的一个键值对被称为条目。每个条目都由关键字和关键字的值组成。key都是唯一的(isEqual)。通常情况下,可以是任何对象(只要它遵守NSCoping协议)。使用键值对时,key必须是一个字符串。key和value都不能为空。如果需要传空值,用NSNull。
简单来说字典为对象提供了一种确定的键/值对联系的方案。下面简单介绍下字典的使用
//创建字典
//@{}表示字典 :前为key 后为该key的对象
//不同对象间用逗号隔开
NSDictionary *testDict = @{@"hobby" : @"上网" , @"sex" : @"男"};
NSDictionary *dict = [[NSDictionary alloc]initWithObjects:@[@"上网",@"男"] forKeys:@[@"hobby",@"sex"]];
//创建可变字典
NSMutableDictionary *muDict = [[NSMutableDictionary alloc]init];
//字典添加新对象
[muDict setObject:@"张三" forKey:@"name"];
[muDict setObject:@"18" forKey:@"age"];
//根据字典的Key取出对应的内容
NSString *name = [muDict objectForKey:@"name"];
NSString *age = [muDict objectForKey:@"age"];
NSLog(@"name:%@ age:%@",name,age);
// "\U4e0a\U7f51" 是 Unicode 编码的表示方法。
//将字典dict添加到muDict中
[muDict setObject:dict forKey:@"dict"];
//根据key来删除字典中的某个对象
[muDict removeObjectForKey:@"age"];
//根据字典的Key取出对应的内容
NSLog(@"删除age后的muDict:%@",muDict);
/*
* 给可变字典设置字典
* 添加后可变字典原数据消失
*/
[
muDict
setDictionary:dict];
NSLog(@"设置字典:%@",peopleDict);
//删除muDict所有对象
[muDict removeAllObjects];
NSLog(@"删除所有对象后的muDict:%@",muDict);
//创建字典
//@{}表示字典 :前为key 后为该key的对象
//不同对象间用逗号隔开
NSDictionary *testDict = @{@"hobby" : @"上网" , @"sex" : @"男"};
NSDictionary *dict = [[NSDictionary alloc]initWithObjects:@[@"上网",@"男"] forKeys:@[@"hobby",@"sex"]];
//创建可变字典
NSMutableDictionary *muDict = [[NSMutableDictionary alloc]init];
//字典添加新对象
[muDict setObject:@"张三" forKey:@"name"];
[muDict setObject:@"18" forKey:@"age"];
//根据字典的Key取出对应的内容
NSString *name = [muDict objectForKey:@"name"];
NSString *age = [muDict objectForKey:@"age"];
NSLog(@"name:%@ age:%@",name,age);
// "\U4e0a\U7f51" 是 Unicode 编码的表示方法。
//将字典dict添加到muDict中
[muDict setObject:dict forKey:@"dict"];
//根据key来删除字典中的某个对象
[muDict removeObjectForKey:@"age"];
//根据字典的Key取出对应的内容
NSLog(@"删除age后的muDict:%@",muDict);
/*
* 给可变字典设置字典
* 添加后可变字典原数据消失
*/
[
muDict
setDictionary:dict];
NSLog(@"设置字典:%@",peopleDict);
//删除muDict所有对象
[muDict removeAllObjects];
NSLog(@"删除所有对象后的muDict:%@",muDict);