NSDictionary和NSMutableDictionary常用用法

本文详细介绍NSDictionary与NSMutableDictionary的常用方法,包括创建、查询、修改等核心操作,并提供实例代码帮助理解。

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值