iOS/Objective-C字典对象NSDictionary的使用20130608更新

来源:互联网 发布:java构造图例子 编辑:程序博客网 时间:2024/05/17 23:53


个人整理转载请注明出处http://blog.csdn.net/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

 


 

原创粉丝点击