NSDictionary、NSMutableDictionary及其枚举器的用法
1.不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberWithInt:100]; 以一个元素初始化 NSDictionary *dic = [NSDictionary dictionaryWithObject:numObj forKey:@"key"]; 初始化两个元素 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:numObj, @"valueKey", numObj2, @"value2",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]; 2.可变数组NSMutableDictionary 初始化一个空的可变字典 NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil]; NSDictionary *dic3 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"]; 向字典2对象中添加整个字典对象3 [dic2 addEntriesFromDictionary:dic3]; 向字典2对象中最佳一个新的key3和value3 [dic2 setValue:@"value3" forKey:@"key3"]; 初始化一个空的可变字典 NSMutableDictionary *dic1 = [NSMutableDictionary dictionary]; 将空字典1对象内容设置与字典2对象相同 [dic1 setDictionary:dic2]; 将字典中key1对应的值删除 [dic1 removeObjectForKey@"key1"]; NSArray *array = [NSArray arrayWithObjects:@"key1", nil]; 根据指定的数组(key)移除字典1的内容 [dic2 removeObjectsForKeys:array]; 移除字典所有对象 [dic1 removeAllObjects]; 3.遍历字典 快速枚举 for (id key in dic){ id obj = [dic key]; NSLog(@"%@", obj); } NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil]; for (NSString *key in dict) { NSLog(@"key: %@ value: %@", key, dict[key]); } 一般枚举 NSArray *keys = [dic allKeys]; inr length = [keys count]; for (int i = 0; i < length;i++){ id key = keys[i]; id obj = dic[key]; NSLog(@"%@", obj); } 通过枚举类型枚举 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil]; for (NSString *key in dict) { NSLog(@"key: %@ value: %@", key, dict[key]); }
Stay hungry,stay foolish.