NSDictionary和NSMutableDictionary常用用法
标签(空格分隔): 常用方法
一、NSDictionary
- 不可变字典
1、创建
1)初始化创建
- (instancetype)initWithObjectsAndKeys:(id)firstObject, …
NSDictionary *dict1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Mike",@"M",@"Lee",@"L",@"Kitty",@"K", nil];
NSLog(@"dict1 = %@",dict1);
运行结果
2016-02-27 14:16:40.280 OCLesson5_NSDictionary[1652:117464] dict1 = {
K = Kitty;
L = Lee;
M = Mike;
}
2)便利构造器创建
+ (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, …
NSDictionary *dict_1 = [NSDictionary dictionaryWithObjectsAndKeys:@"Mike",@"M",@"Lee",@"L",@"Kitty",@"K", nil];
NSLog(@"dict_1 = %@",dict_1);
运行结果
2016-02-27 14:16:40.281 OCLesson5_NSDictionary[1652:117464] dict_1 = {
K = Kitty;
L = Lee;
M = Mike;
}
3)使用字面量创建(常用)
NSDictionary *dict2 = @{@"M":@"Mike",@"L":@"Lee",@"K":@"Kitty"};
NSLog(@"dict2 = %@",dict2);
运行结果
2016-02-27 14:16:40.281 OCLesson5_NSDictionary[1652:117464] dict2 = {
K = Kitty;
L = Lee;
M = Mike;
}
2、获取字典中键值对的个数
NSUInteger c1 = dict1.count;
NSLog(@"c1 = %lu",c1);
运行结果
2016-02-27 14:16:40.281 OCLesson5_NSDictionary[1652:117464] c1 = 3
3、获取字典中所有的键key
@property (readonly, copy) NSArray *allKeys
NSArray *keyArr = dict1.allKeys;
NSLog(@"keyArr = %@",keyArr);
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] keyArr = (
M,
L,
K
)
4、获取字典中所有的值value
@property (readonly, copy) NSArray *allValues
NSArray *valueArr = dict1.allValues;
NSLog(@"valueArr = %@",valueArr);
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] valueArr = (
Mike,
Lee,
Kitty
)
5、根据键key获取对用的值value
1)方法
- (nullable ObjectType)objectForKey:(KeyType)aKey
NSString *obj1 = [dict1 objectForKey:@"M"];
NSLog(@"obj1 = %@",obj1);
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] obj1 = Mike
2)字面量
NSString *obj2= dict1[@"L"];
NSLog(@"obj2 = %@",obj2);
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] obj2 = Lee
- 注意:在字典中key不能重复,但是value可以重复
NSDictionary *dict3 = @{@"M":@"Mike",@"L":@"Lee",@"T":@"Tim",@"L":@"Lucy",@"Mi":@"Mike"};
NSLog(@"dict3 = %@",dict3);
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] dict3 = {
L = Lee;
M = Mike;
Mi = Mike;
T = Tim;
}
二、NSMutableDictionary
- 可变字典
1、创建
1)初始化创建
NSMutableDictionary *mdict1 = [[NSMutableDictionary alloc] initWithCapacity:10];
2)字面量
NSMutableDictionary *mdict2 = @{@"M":@"Mike",@"L":@"Lee"}.mutableCopy;
NSLog(@"mdict2 = %@",mdict2);
- 要使用.mutableCopy语法
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] mdict2 = {
L = Lee;
M = Mike;
}
2、添加元素
- (void)setObject:(ObjectType)anObject forKey:(KeyType )aKey;
[mdict2 setObject:@"Tim" forKey:@"T"];
NSLog(@"mdict2 = %@",mdict2);
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] mdict2 = {
L = Lee;
M = Mike;
T = Tim;
}
3、修改元素
[mdict2 setObject:@"Lucy" forKey:@"L"];
NSLog(@"mdict2 = %@",mdict2);
运行结果
2016-02-27 14:16:40.282 OCLesson5_NSDictionary[1652:117464] mdict2 = {
L = Lucy;
M = Mike;
T = Tim;
}
4、给定key删除value
- (void)removeObjectForKey:(KeyType)aKey;
[mdict2 removeObjectForKey:@"M"];
NSLog(@"mdict2 = %@",mdict2);
运行结果
2016-02-27 14:16:40.283 OCLesson5_NSDictionary[1652:117464] mdict2 = {
L = Lucy;
T = Tim;
}
5、删除所有键值对
- (void)removeAllObjects;
[mdict2 removeAllObjects];
NSLog(@"mdict2 = %@",mdict2);
运行结果
2016-02-27 14:16:40.283 OCLesson5_NSDictionary[1652:117464] mdict2 = {
}
Program ended with exit code: 0
本文详细介绍NSDictionary与NSMutableDictionary的常用方法,包括创建、查询、修改等核心操作,并提供实例代码帮助理解。

442

被折叠的 条评论
为什么被折叠?



