个人整理转载请注明出处http://blog.youkuaiyun.com/rylt2011/article/details/9058421
dictionary是由建-对象对组成的数据集合,可通过对象的键从Objective–C词典中获取所需要的值(即对象)。
创建不可变字典
NSDictionary * dict = [[NSDictionary alloc]initWithObjectsAndKeys:@”one”,@”1”,@”two”,@”2”, @”three”,@”3”,nil];
字典的数据成员可以是任意的数据对象;成员必须是一些承兑出现的键值对;必须要成对的写:值(value)->键(key);key不能重复。
获取键值对的个数
[dict count];
得到所有的Value
NSArray * values = [dict allValues];
字典是无序存放的,存放的是对象的地址
如果字典只包含属性列表对象(NSData、NSDate、NSNumber、NSString、NSArray或NSDictionary)可以保持的文件中
NSString * path = [[[NSBundlemainBundle ] resourcePath ] stringByAppendingPathComponent:@"dict.txt"];
BOOL suc = [dict writeToFile:path atomically: YES];
使用字典存储从文件中读取的内容
NSDictionary * dict2 = [NSDictionary dictionaryWithContentsOfFile: path];
创建一个key的枚举器
NSEnumerator * enumer1 = [dict keyEnumerator];
id key;
while(key = [enumer1 nextObject])
{
NSLog(“key =%@”,key);
}
快速枚举
for(id key in dict){
NSLog(@”key= %@”,key);
}
可变字典
NSMutableDictionary * dict = [NSMutableDictionaryalloc]initWithObjectsAndKeys:@”one”, @”1”, @”two”, @”2”, @”three”, @”3”,nil];
增加/修改字典中的键值对
[dict setObject:@”four” forKey:@”4”];
通过key删除键值对
[dict removeObjectForKey:@”1”];
删除多个对象
NSArray * keyArray=[NSArray arrayWithObjects:@”one”,@”two”,nil];
[dict removebjectForKey:keyArray];
删除全部键值对
[dict removeAllObjects];
常用的NSDictionary方法
使用键-对象{key1,obj1}、{key2,obj2}…创建词典
+(id)dictionaryObjectsAndKeys:obj1,key1,obj2,key2,…,nil
将新分配的词典初始化为键-对象对{key1,obje1}{key2,obj2}…
-(id)initWithObjectsAndKeys:obj1,key1,obj2,key2,…,nil
返回词典中的记录数
-(unsigned int)count
为词典中所有键返回一个NSEnumerator对象
-(NSEnumerator *)keyEnumerator
返回词典中的键数组,它根据selector指定的比较方法进行了排序
-(NSArray *)keysortedByValueUsingSelector:(SEL)selector
为字典中的所有值返回一个NSEnumerator对象
-(NSEnuerator *)objectEnumerator
返回指定key对象
-(id)objectForkey:key
常用的NSMutableArray方法
使用一个初始指定的size创建可变字典
+(id)dictionaryWithCapacity:size
将新分配的词典初始化为指定的size
-(id)initWithCapacity:size
删除词典中所有的记录
-(void)removellObjects
删除词典中指定key对应的记录
-(void)removebjectForKey:key
向词典为key添加obj,如果key 已存在,则替换该值
-(void)setObject:obj ForKey:key