博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object-c学习之路九(字典(NSDictionary&NSMutableDictionary))
阅读量:6167 次
发布时间:2019-06-21

本文共 2965 字,大约阅读时间需要 9 分钟。

字典的练习和使用(遍历,搜索。。。)(Student和Book类文件可以查看上篇博客这次不上传了。

 

////  main.m//  NSDictionary////  Created by WildCat on 13-7-26.//  Copyright (c) 2013年 wildcat. All rights reserved.//#pragma mark - NSDictionary练习#import 
#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;}

 

 

你可能感兴趣的文章
铁大好青年内部分组
查看>>
unity3D ——自带寻路Navmesh入门教程(一)(转)
查看>>
判断字符串是否为数字的函数
查看>>
[emuch.net]MatrixComputations(7-12)
查看>>
linux 命令 — 文件相关
查看>>
自己空闲的时候封装一下
查看>>
Datagard產生gap
查看>>
本机web开发环境的搭建--nginx篇
查看>>
rcnn 理解笔记
查看>>
问答项目---登陆验证码点击切换及异步验证验证码
查看>>
plist文件中iphone和ipad的应用图片设置
查看>>
搜集的一些资源网站链接
查看>>
struts2中类型转换器的使用
查看>>
11G Oracle RAC添加新表空间时数据文件误放置到本地文件系统的修正
查看>>
从91移动应用发展趋势报告看国内应用现状
查看>>
【ORACLE技术嘉年华PPT】MySQL压力测试经验
查看>>
Linux下汇编调试器GDB的使用
查看>>
css溢出机制探究
查看>>
vue中如何实现后台管理系统的权限控制
查看>>
关于angularjs过滤器的理解
查看>>