------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、NSDictionary
1> NSDictionary(字典)通常在给定一个关键字(通常是一个NSString字符串)下存储一个数值(可以是任何类型的对象)。然后你可以使用这个关键字查找相应的数值;
2> NSDictionary里面存储的是键值对,key----->value;
3> 常用方法:
创建字典:
+ (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ...;
获取字典中的值:
- (id)objectForKey:(id)aKey;
二、NSMutableDictionary
1> 创建新的NSMutableDictionary对象,向类NSMutableDictionary发送dictionary消息;
2> NSMutableDictionary继承自NSDictionary;
3> NSMutableDictionary可变字典,NSDictionary不可变字典;
4> 常用方法:
添加键值对\元素:
- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
若对字典中已有的关键字使用setObject:forKey:方法,则用新的值替换旧值;
删除可变字典中的一个关键字:
- (void)removeObjectForKey:(id)aKey;
二、用法
//初始化
NSString *key1 = @"key1";
NSString *key2 = @"key2";
NSString *key3 = @"key3";
NSString *key4 = @"key4";
NSString *key5 = @"key5";
NSString *value1 = @"value1";
NSString *value2 = @"value2";
NSString *value3 = @"value3";
NSString *value4 = @"value4";
NSString *value5 = @"value5";
NSDictionary *dic1 = [NSDictionary dictionaryWithObject:value1 forKey:key1];
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:value1,key1,value2,key2, nil];
NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];
NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys:value3,key3,value4,key4,value5,key5, nil];
NSLog(@"dic1 = %@",dic1);
NSLog(@"dic2 = %@",dic2);
NSLog(@"dic3 = %@",dic3);
//获取字典数量
int size = [dic3 count];
NSLog(@"dic3 size is %d",size);
//获取value
NSString *value = [dic3 objectForKey:key1];
NSLog(@"dic3 value1 is %@",value);
//获取所有的key和value
NSArray *allKeys = [dic3 allKeys];
NSArray *allValues = [dic3 allValues];
NSLog(@"allKeys = %@",allKeys);
NSLog(@"allValues = %@",allValues);
//遍历字典
for (NSString *key in dic3) {
NSLog(@"dic3 key is %@, value is %@",key,[dic3 objectForKey:key]);
}
//--------------------------NSMutableDictionary 可变字典 -------------------------------------
//初始化
NSMutableDictionary *mDic1 = [NSMutableDictionary dictionaryWithDictionary:dic3];
NSLog(@"mDic1 = %@",mDic1);
//添加、修改、删除元素
[mDic1 setValue:value3 forKey:key3];
[mDic1 setObject:value4 forKey:key4];
[mDic1 setValue:@"value333" forKey:key3];
NSLog(@"mDic1 = %@",mDic1);
[mDic1 addEntriesFromDictionary:dic4];
NSLog(@"mDic1 = %@",mDic1);
[mDic1 removeObjectForKey:key3];
[mDic1 removeObjectForKey:key4];
[mDic1 removeObjectForKey:key5];
NSLog(@"mDic = %@",mDic1);
[mDic1 addEntriesFromDictionary:dic4];
NSLog(@"mDic = %@",mDic1);
//判断是否含有某个key
BOOL b1 = [[mDic1 allKeys] containsObject:key5];
NSLog(@"b1 = %d",b1);