本文主要是介绍NSDictionary和NSMutableDictionary类常用方法的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在NSDictionary(不可变字典)中,常使用下面几种方法:
1、先创建一个字典(使用类方法)
NSDictionary* dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"one",@"ONE",@"two",@"TWO",@'three",@"THREE",@"four",@"FOUR",@'five",@"FIVE",nil];
创建成功,在NSDictionary中已经重写了-(NSString*)description方法,所以可以用“%@”来直接打印输出,输出格式为:
{
ONE = one;
THREE = three;
TWO = two;
FIVE = five;
FOUR = four;
}
注意:在字典中,键值对排放并没有顺序,所以上面的输出是无序的。
2、使用for循环来遍历字典
for(id object in dic1)
{
NSLog(@"%@",object);
}
3、使用迭代器来遍历字典
NSEnumerator* keyEnum = [dic1 keyEnumerator];//返回字典中的键
for(int i = 0; i < [dic1 count]; i++)
{
NSLog(@"%@",[keyEnum nextObject]);//依次打印字典中的键
}
NSEnumerator* objectEnum = [dic1 objectEnumerator];//返回字典中的值
for(int i = 0; i < [dic1 count]; i++)
{
NSLog(@"%@",[objectEnum nextObject]);//依次打印字典中的值
}
4、得到全部的键和值
NSArray* keyArray = [dic1 allKeys];//将字典中全部的键存放到数组中
这里还可以对NSArray中的键进行排序:
NSArray* keySortedArray = [keyArray sortedArrayUsingSelector:@selector(compare:)];//由小到大,升序
还可以使用NSDictionary中的方法对值进行排序,也返回一个NSArray对象,但存放的是排好序以后的值对应的键,(键不一定有序)
NSArray* keySortedArray2 = [dic1 keysSortedByValueUsingSelector:@selector(compare:)];
for(id object in keyArray)
{
NSLog(@"%@",object);//输出一个键
NSLog("%@",[dic1 objectForKey:object]);//输出这个键对应的值
}
NSArray* valuesArray = [dic1 allValues];//将字典中全部的值存放到数组中
NSMutableDictionary 可变字典 ,继承了NSDictionary,也就是上面的方法在可变字典中全部都可以使用,另外还增加了新的方法,如下:
1、创建一个可变字典:
NSMutableDictionary* mudic = [NSMutableDictionary dictionaryWithCapaity:5];//初始容量为5,但是在这个方法里实现了自动扩容
2、添加键值对:
[mudic setObject:@"one" forKey:@"ONE"];
[mudic setObject::@"two" forKey:@"TWO"];
[mudic setObject:@"three" forKey:@"THREE"];
3、删除指定键的键值对:
[mudic removeObjectForKey:@"TWO"];
4、删除全部的键值对:
[mudic removeAllObjects];
这篇关于NSDictionary和NSMutableDictionary类常用方法的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!