object-c 之NSDictionary和NSMutableDictionary的一些操作

本文深入探讨了Objective-C与Swift在iOS开发领域的应用与对比,包括其特性、优缺点以及如何在实际项目中高效使用这两种语言。

学习NSDictionary的时候,又是一次惊奇的发现跟Java里面的Map集合有类似的存储数据格式。

跟NSArray 一样,NSDictionary也有个可变的字典,那就是NSMutableDictionary,一些初始化的方法都类似,比如

NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithCapacity:5];
NSMutableArray      *mArr = [NSMutableArray arrayWithCapacity:5];
mDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:<#(id), ...#>, nil];
mArr = [NSMutableArray arrayWithObjects:<#(id), ...#>, nil];
都是非常类似的,了解了NSArray的一些方法,对NSDictionary也就有一些了解了。他们最大的不同就是一个是直接存储,一个是以key-value的形式存储。所以,在初始化之后的一些添加和修改,以及获取的方法上就有很大的区别了。对于NSArray的一些方法,目前已经掌握的差不多了。现在就只温习下NSDictionary的一些很有用的方法。

- (NSArray *)allKeys;
返回NSDictionary中的所有key组成的数组,当然对应的就有返回NSDictionary中所有value组成的数组  - (NSArray *)allValues;

在实际的项目中总是需要用到可变的东西,有很多是直接对数据进行操作的,所以就喜欢用可以变的存储集合。

在NSMutableDictionary的方法就更为常用了。

- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;
把otherDictionary中的实体对象添加到自己的字典中来
- (void)removeAllObjects;
清空目标字典,同时清除key和对应的value (经常用到)
- (void)removeObjectForKey:(id)aKey;
- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
第一个是根据aKey来删除value,同时aKey也被删除;第二个是专属于字典的赋值方式,
@interface NSMutableDictionary(NSKeyValueCoding)
/* Send -setObject:forKey: to the receiver, unless the value is nil, in which case send -removeObject:forKey:.
*/
- (void)setValue:(id)value forKey:(NSString *)key;

@end
对于这个setValue:forKey:方法;是在NSKeyValueCoding中添加的方法,所以也可以用,为了以防万一,尽量还是用它自己的方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值