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.以上所有的操作都会修改原来字典中的内容,而不是返回一个新的字典;


看官们,本章回的内容就介绍到这里,欲知后事如何且听下回分解!

Guess you like

Origin blog.csdn.net/talk_8/article/details/119707445
Recommended