Object-c学习之路九(字典(NSDictionary&NSMutableDictionary))
2013-07-26 06:09 Lves Li 阅读(186) 评论(0) 编辑 收藏 举报
字典的练习和使用(遍历,搜索。。。)(Student和Book类文件可以查看上篇博客这次不上传了。)
// // main.m // NSDictionary // // Created by WildCat on 13-7-26. // Copyright (c) 2013年 wildcat. All rights reserved. // #pragma mark - NSDictionary练习 #import <Foundation/Foundation.h> #import "Student.h" #pragma mark 创建字典 void dictCreat(){ //第一种方式 NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys: @"v1",@"k1", @"v2",@"k2", @"v3",@"k3",nil]; NSLog(@"The Dictionary is:%@",dict); //第二种方式 NSArray *objects=[NSArray arrayWithObjects:@"v1",@"v2",@"v3",@"v4", nil]; NSArray *keys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3",@"k4", nil]; dict=[NSDictionary dictionaryWithObjects:objects forKeys:keys]; NSLog(@"The Dictionary is:%@",dict); } #pragma mark 字典的使用 void dictUser(){ //创建一个字典 NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys: @"v1",@"k1", @"v2",@"k2", @"v3",@"k3",nil]; //由于NSDIctionary是不可变的,只能取值,不能修改值 id obj=[dict objectForKey:@"k2"];//查找值 NSLog(@"The obj is :%@",obj); NSInteger count=[dict count];//获得个数 NSLog(@"Count :%zi",count); //将字典写入文件中 NSString *path=@"/Users/bird/Desktop/dict.xml"; [dict writeToFile:path atomically:YES]; //通过keys获得values NSArray *objects=[dict objectsForKeys:[NSArray arrayWithObjects:@"k1",@"k2",@"k4", nil] notFoundMarker:@"not-finde"]; NSLog(@"object:%@",objects); } #pragma mark 遍历字典 void dictionaryFor(){ NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys: @"v1",@"k1", @"v2",@"k2", @"v3",@"k3",nil]; //第一种方法 for (id keys in dict) { id object=[dict objectForKey:keys]; NSLog(@"%@--%@",keys,object); } //第二种方法 通过迭代器遍历 NSEnumerator *keyenu=[dict keyEnumerator]; id key=nil; NSLog(@"迭代器遍历:"); while (key=[keyenu nextObject]) { id object=[dict objectForKey:key]; NSLog(@"%@--%@",key,object); } NSLog(@"通过BLock遍历:"); //第二种方法 通过Block遍历 [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"%@--%@",key,obj); }]; } #pragma mark 可变字典 void mutableDictUser(){ Student *stu1=[Student initWithFirstName:@"lele" LastName:@"li"]; Student *stu2=[Student initWithFirstName:@"ll" LastName:@"li"]; Student *stu3=[Student initWithFirstName:@"xingle" LastName:@"li"]; NSMutableDictionary *dict=[NSMutableDictionary dictionary]; [dict setValue:stu1 forKey:@"k1"]; [dict setValue:stu2 forKey:@"k2"]; [dict setValue:stu3 forKey:@"k3"]; NSLog(@"%@",dict); //删除所有元素 //[dict removeAllObjects]; //通过键值删除元素 [dict removeObjectForKey:@"k2"]; NSLog(@"%@",dict); } int main(int argc, const char * argv[]) { @autoreleasepool { //dictCreat(); //dictUser(); //dictionaryFor();//遍历字典 mutableDictUser(); } return 0; }