Foundation框架中的动态字典
Posted talk_8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Foundation框架中的动态字典相关的知识,希望对你有一定的参考价值。
看官们,我们在前面章回中介绍了Foundation框架中的静态字典,本章回中将介绍Foundation框架中的动态字典。
动态字典使用NSMutableDictionary类来表示,它是NSDictionary的子类,因此我们在上在章回中介绍过的相关方法也适用于动态字典,因为NSMutableDictionary类从父类NSDictionary继承了这些方法,此外它还有一些自己特有的方法:添加、修改中和删除字典中的键值对。接下来我们依次介绍这些方法。
向字典中添加键值对
使用setObject:forKey:方法可以把参数中的键值对添加到字典中,如果参数中的键与字典中键相同,那么修改与键对应的键值对;
修改字典中的键值对
使用setObject:forKey:方法可以修改字典中的键值对,前提是键值相同,否则当作新的键值对添加到字典中;
删除字典中的键值对
使用removeObjectForKey:方法可以删除与键相同的键值对;
使用removeAllObjects方法可以删除字典中所有的键值对;
看官们,字典中还有其它的操作,我们就先不详细介绍了,大家可以参考官方文档。上面我们一直在介绍理论方面的知识,接下来我们通过代码来演示字典中相关的操作。下面是具体的代码:
#include<Foundation/Foundation.h>
int main()
{
//不能使用大括号来初始化动态字典
// NSMutableDictionary *dic1 = @{@1:@"aa",@3:@"cc",@2:@"bb"};
NSArray *keys = [NSArray arrayWithObjects:@1,@3,@2,nil];
NSArray *values = [NSArray arrayWithObjects:@"one",@"three",@"two",nil];
NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjects:values forKeys:keys];
NSLog(@"origin %@",dic1);
//添加键值对
[dic1 setObject:@"dd"forKey:@4];
NSLog(@"add key-value: %@",dic1);
//修改键值对
[dic1 setObject:@"ff"forKey:@3];
NSLog(@"change key-value: %@",dic1);
//删除键值对
[dic1 removeObjectForKey:@4];
NSLog(@"remove key-value: %@",dic1);
//删除所有的键值对,相当于清空字典
[dic1 removeAllObjects];
NSLog(@"remove all key-value: %@",dic1);
return 0;
}
在代码中我们添加了相关的注释,以方便大家理解代码。程序中字典的元素比较少,大家可以直接判断出运行结果,因此我们就不展示程序运行结果了,不过大家一定要自己动手运行程序,一边分析代码,一边对比程序运行结果是否符合代码分析的结果。
最后我们对本章回的内容做一个总结:
- 1.动态字典是静态字典的子集,静态字典的所有方法对动态字典都有效果;
- 2.使用setObject:forKey:可以修改字典中的键值对,或者向字典中添加键值对;
- 3.使用removeObjectForKey:方法可以删除字典中与键相同的键值对;
- 4.使用removeAllObjects方法可以删除字典中所有的键值对,相当于清空字典;
- 5.以上所有的操作都会修改原来字典中的内容,而不是返回一个新的字典;
看官们,本章回的内容就介绍到这里,欲知后事如何且听下回分解!
以上是关于Foundation框架中的动态字典的主要内容,如果未能解决你的问题,请参考以下文章