字典的练习和使用(遍历,搜索。。。)(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;
}

Object-c学习之路九(字典(NSDictionary&NSMutableDictionary))的更多相关文章

  1. Foundation框架--字典( NSDictionary NSMutableDictionary )

    基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...

  2. zigbee学习之路(九):串口(发送)

    一.前言 今天,我们来学习和实验串口模块方面的,串口通信是我们常用的通信手段,通过串口交互,我们可以很容易的和pc机进行数据的交换和发送,所以我们今天就来学习一下.这个实验所进行的功能是一开始CC25 ...

  3. Java学习之路(九):Map集合

    Map集合概述和特点 Map是属于java.util的一个接口Map<k,v> k:映射所维护的键的类型 v:映射值的类型 Map是将键映射到值的对象.一个映射不能包含重复的键:每个键最多 ...

  4. 嵌入式Linux驱动学习之路(九)Linux系统调用、驱动程序框架

    应用程序通过open  read  write close 等函数来操作计算机硬件.类似是一个接口. 当应用程序调用这些接口程序时,计算机是如何进入内核的呢?这是经过了系统调用. 实际上当调用接口函数 ...

  5. IOS7学习之路九(ios7自定义UIAlertView)

    IOS7的UIAlertView 不支持自定义,无法添加subview . 不过可以用第三方库git上的下载链接    https://github.com/wimagguc/ios-custom-a ...

  6. IOS学习之路九(配置restful webservice 框架restkit)

    RestKit 是一个开源的 objective-c 框架,容许在 iOS 和 Mac OS X 的 Objective-C 中与 RESTful Web 办事进行交互,包含简单的 HTTP requ ...

  7. Object C学习笔记13-Dictionary字典

    通过Array数组和Set集合的学习和理解,可以想象得到Dictionary也分为两种情况了,那就是可变和不可变两种类型的.的确如此,在Object C中提供了两个字典类,分别为NSDictionar ...

  8. FastAPI 学习之路(十九)处理错误

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  9. 学习之路三十九:新手学习 - Windows API

    来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...

随机推荐

  1. 写PPT的方法

    这个方法是今天同事的方法,看到他的PPT简洁高效,明了,记下了他的方法: 写文字:写框架,这个框架或者内容可以是word形式的,目的是展示内容 找模板:在搜集到的各种ppt模板中选几个适合自己文字的页 ...

  2. kaggle之泰坦尼克的沉没

    Titanic 沉没 参见:https://github.com/lijingpeng/kaggle 这是一个分类任务,特征包含离散特征和连续特征,数据如下:Kaggle地址.目标是根据数据特征预测一 ...

  3. Firebase远程更新应用

    能打造出色的应用不意味着一定能在商业上取得成功,两者之间还有许多工作要做,绝不能简单发布应用后就宣告“收工”.您需要能迅速根据用户反馈作出调整.测试新功能,以及向用户提供他们最关注的内容. Fireb ...

  4. Linux UGO和ACL权限管理

    自主访问控制(Discretionary Access Control, DAC)是指对象(比如程序.文件.进程)的拥有者可以任意修改或者授予此对象相应的权限.Linux的UGO(User, Grou ...

  5. Silverlight Application 无法调用js的方法

    今天下午做项目的时候遇到了这个错误 找了很多原因没找出,在蛋疼之际找出了问题, Silverlight调js方法的时候 js方法里面不能出现一点问题,如果有一点问题就会报这个错误.

  6. XML读写

    private string fileName = HttpContext.Current.Server.MapPath("~/Student.xml"); protected v ...

  7. java版-JQuery上传插件Uploadify使用实例

    摘自:http://itindex.net/detail/47160-java-jquery-%E4%B8%8A%E4%BC%A0 运行效果: 包结构图: 后台JAVA逻辑: package com. ...

  8. PHP PSR-2 代码风格规范 (中文版)

    代码风格规范 本篇规范是 PSR-1 基本代码规范的继承与扩展. 本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便. 当多名程序员在多个项目中合 ...

  9. 2013年9月份阿里JAVA面试经历

    面试时间:2013-9 面试地点:合工大 面试内容: 1. struts2怎么实现的,原理是什么 2. session是怎么实现的?存储在哪里? 3. Java怎么创建链表的? 定义一个结点类,再定义 ...

  10. 利用7z实现一键解压

    目的: 实现双击zip,7z,rar等文件时自动解压,解压完毕后自动打开文件夹. 工具: [本文末尾附有所有工具的下载地址] 7z.exe types 步骤: 新建"7z-自动解压" ...