1、字典的创建
//添加的时候先添加值,再添加键
//存储的是值键对
NSDictionary * dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"one", @"1", @"two", @"2", @"three",@"3", nil];
1)一个数组作为值,一个数组作为键
2)两个数组的元素个数必须相等
3)因为字典中的键和值是成对出现的
NSArray * arrayVal = @[@"one", @"two", @"three"];
NSArray * arrayKey = @[@"1", @"2", @"3"];
NSDictionary * dic1 = [[NSDictionary alloc] initWithObjects:arrayVal forKeys:arrayKey];
NSDictionary * dic2 = [[NSDictionary alloc] initWithDictionary:dic];
//以下是用类方法创建字典
NSDictionary * dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"one", @"1", @"two", @"2", @"three",@"3", nil];
NSDictionary * dic4 = [NSDictionary dictionaryWithObjects:arrayVal forKeys:arrayKey];
NSDictionary * dic5 = [NSDictionary dictionaryWithDictionary:dic];
//Xcode4.6以后允许用以下方法创建字典
NSDictionary * dic6 = @{@"1": @"one", @"2":@"two", @"3":@"three"};
2、字典常用方法
(1)如何查找值
NSDictionary * dic1 = @{@"1": @"one", @"2":@"two", @"3":@"three"};
NSString * str = [dic1 objectForKey:@"1"];
(2)如何遍历字典
//字典的遍历
//1、for in 遍历:快速遍历,在遍历的过程中,每循环一次就会得到一个键,通过键去获取值
for (NSString * key in dic1) {
NSLog(@"%@", [dic1 objectForKey:key]);
}
//2、枚举器遍历
//先创建一个枚举器,枚举器中存放的是字典中的所有键
//遍历的过程中逐一去取键,然后通过键去得到值
NSEnumerator * enu = [dic1 keyEnumerator];
NSString * str1;
while ((str1 = [enu nextObject]) != nil) {
NSLog(@"%@", [dic1 objectForKey:str1]);
}
(3)返回键值对个数
NSUInteger counter = [dic1 count];
(4) 通过键去获取值
[dic1 objectForKey:@"1"];
(5) 获取所有键或所有值
[dic1 allKeys];
[dic1 allValues];
3、可变字典
<1>增加键值对
//如果键是不存在的,则添加一个键值对
//如果键是存在的,把键所对应的值修改成当前对象的值
NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"one", @"1", @"two", @"2", @"three",@"3", nil];
[dic setObject:@"four" forKey:@"4"];
//[dic setObject:@"FOUR" forKey:@"4"];
<2>删除键值对
//通过键去删除键所对应的键值对
[dic removeObjectForKey:@"4"];
//把所要删除的键值对的键存放在数组中,删除多个键值对
[dic removeObjectsForKeys:@[@"1", @"2"]];
//删除所有键值对
[dic removeAllObjects];
<3>修改键值对
// 如果键是不存在的,则添加一个键值对
// 如果键是存在的,把键所对应的值修改成当前对象的值
[dic setObject:@"four" forKey:@"4"];