http://blog.sina.com.cn/s/blog_b6e3f37101019luc.html
字典使用Key-Value的形式储存数据。
字典中的对象储存没有顺序,使用key来表示每个对象。
cocoa框架中的字典:NSDictionary和NSMutableDictionary
NSMutableDictionary是NSictionary的子类,能使用其所有方法。
NSMutableDictionary是NSDictionary的可修改版本
#import
int main(int argc, const char * argv[])
{
@autoreleasepool
{
//不可变字典NSDictionary
//字典的创建
NSDictionary
*dic1=[NSDictionary dictionaryWithObject:@"velue" forKey:@"k1"];//一个键 一个值
NSDictionary
*dic2=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5",nil];//创建多个键
多个值
NSDictionary
*dic3=[NSDictionary dictionaryWithDictionary:dic1];//直接把dic内容给dic3
NSLog(@"dic1:%@",dic1);
NSLog(@"dic2:%@",dic2);
NSLog(@"dic3:%@",dic3);
//获取字典的数量
int
count=[dic2 count];
NSLog(@"%d",count);
//获取k3的value
NSString
*string=[dic2 objectForKey:@"k3"];
NSLog(@"value:%@",string);
//获取字典中所有的key和value
NSArray
*keyArray=[dic2 allKeys];
NSArray
*valueArry=[dic2 allValues];
NSLog(@"keyArray:%@valueArry:%@",keyArray,valueArry);
////////////////////////////
//可变字典NSMutableDictionary
NSMutableDictionary
*mutableDic1=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5",
nil];
//上面是类方法直接赋值
下面是实例方法开辟空间并赋值
NSMutableDictionary
*mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
//将一个字典中的velue和key添加到另外一个字典中
NSDictionary
*dic4=[NSDictionary dictionaryWithObject:@"v6" forKey:@"k6"];
[mutableDic
addEntriesFromDictionary:dic4];
NSLog(@"MutableDic%@",mutableDic);
//向字典中添加新的velue和key
[mutableDic
setValue:@"object" forKey:@"key"];
NSLog(@"%@",mutableDic);
//创建一个空的字典数组
NSMutableDictionary
*mutableDic2=[NSMutableDictionary dictionary];
[mutableDic2
setDictionary:mutableDic];//
NSLog(@"dic2:%@",mutableDic2);
//通过制定key删除
[mutableDic2
removeObjectForKey:@"k4"];
NSLog(@"dic2:%@",mutableDic2);
//删除多个键值
NSArray
*keys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];
[mutableDic2
removeObjectsForKeys:keys];
NSLog(@"dic2:%@",mutableDic2);
//删除全部键值
// [mutableDic2
removeAllObjects];
// NSLog(@"dic2:%@",mutableDic2);
//遍历字典 一般的方法
for
(int index=0;index<[mutableDic1 count]; index++) {
NSString
*object=[mutableDic1 objectForKey:[[mutableDic1 allKeys]objectAtIndex:index]];
NSLog(@"object:%@",object);
}
//快速枚举
NSLog(@"____________________");
for
(NSString *key in mutableDic1) {
NSString
*object=[mutableDic1 objectForKey:key];
NSLog(@"object:%@",object);
}
NSLog(@"____________________");
//使用枚举类型
NSEnumerator
*enumerator=[mutableDic1 keyEnumerator];
id
key;
while(key=[enumerator
nextObject]){
id
object=[mutableDic1 objectForKey:key];
NSLog(@"object:%@",object);
}
}
return
0;
}