NSDictionary 用于保存具有映射关系的数据,NSDictionary 包含两组数据,一组用来保存key值,一组用来保存valure值。
一个Key可以对应多个value,反过来则不可以。
//
//  main.m
//  NSDictionary
//
//  Created by mac on 14-12-4.
//  Copyright (c) 2014年 mac. All rights reserved.
//

#import<Foundation/Foundation.h>

void staticCreatDictionary()
{
    NSDictionary * dict = [NSDictionarydictionary];
    dict = [NSDictionarydictionaryWithObject:@"dictonary0"forKey:@"key1"];
    dict = [NSDictionarydictionaryWithObjectsAndKeys:@"Dictionary1",@"key2",@"Dictionary2",@"key3",@"Dictionary3",@"key4",nil];
   
    NSDictionary * dict1 = [NSDictionarydictionaryWithDictionary:dict];
   
    NSLog(@"DICTIONARY:%@",dict1);
   
    NSArray * keyArray = [NSArrayarrayWithObjects:@"k1",@"k2",@"k3",@"k4",@"k5",nil];
    NSArray * valureArray = [NSArrayarrayWithObjects:@"Hello1",@"Hello2",@"Hello3",@"Hello4",@"Hello5",nil];
    //通过数组创建
    dict = [NSDictionarydictionaryWithObjects:valureArrayforKeys:keyArray];
    NSLog(@"%@",dict);
   
    //通过文件创建
    NSDictionary * dict3 ;
    dict3 = [NSDictionarydictionaryWithContentsOfFile:@"/Users/mac/desktop/a.txt"];
    NSLog(@"Ditc3:%@",dict3);
   
}

void others()
{   NSDictionary * dict ;
    dict = [NSDictionarydictionaryWithObjectsAndKeys:@"Dictionary1",@"key2",@"Dictionary2",@"key3",@"Dictionary3",@"key4",nil];
    //计数字典大小
    NSUInteger count = [dictcount];
    NSLog(@"%lu",count);
   
    //判断是否两个字典是否相同
    NSDictionary * dict1;
    dict1 = [NSDictionarydictionaryWithObject:@"dictonary0"forKey:@"key1"];
    NSLog(@"%i",[dictisEqualToDictionary:dict1]);
   
    [dict writeToFile:@"/Users/mac/desktop/a.txt"atomically:YES];
   
}

void keyAndValure()
{
    NSDictionary * dict3 ;
    dict3 = [NSDictionarydictionaryWithContentsOfFile:@"/Users/mac/desktop/a.txt"];
    //返回所有key
    NSArray * keysAtrray = [dict3allKeys];
    NSLog(@"%@",keysAtrray);
    //返回一个对象对应的所有key
    NSArray * keyArray = [dict3allKeysForObject:@"Dictionary1"];
    NSLog(@"%@",keyArray);
   
    //返回一个key对应的valure
    id obj = [dict3objectForKey:@"key2"];
    NSLog(@"%@",obj);
    //返回一组key对应的valure
    NSArray * valureArray = [dict3objectsForKeys:keysAtrraynotFoundMarker:@"NoFound"];
    NSLog(@"%@",valureArray);
   
}

void  ergodic()
{
    NSDictionary * dict3 ;
    dict3 = [NSDictionarydictionaryWithContentsOfFile:@"/Users/mac/desktop/a.txt"];
    //快速遍历
    for (id key in dict3) {
        NSLog(@"%@",[dict3objectForKey:key]);
    }
    //迭代器方法遍历
    NSEnumerator * keyEnum = [dict3keyEnumerator];
    id obj;
    while (obj = [keyEnumnextObject]) {
        NSLog(@"%@",obj);
    }
    NSEnumerator * valureEnum = [dict3objectEnumerator];
    id obj1;
    while (obj1 = [valureEnumnextObject]) {
        NSLog(@"%@",obj1);
    }
   
    //block方法遍历
    [dict3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj,BOOL *stop) {
        NSLog(@"%@  %@",key,obj);
        NSString * keyJuge = key ;
        if ([keyJugecompare:@"key3"]==0) {
            *stop = YES ;
        }
    }];
   
}

void mutableDictionary()
{
    //动态创建
    NSMutableDictionary * dynamicDict;
    NSArray * valueArray = [NSArrayarrayWithObjects:@"Hello1",@"Hello2",@"Hello3",@"Hello4",nil];
    NSArray * keyArray = [NSArrayarrayWithObjects:@"1",@"2",@"3",@"4",nil];
    dynamicDict = [NSMutableDictionarydictionaryWithObjects:valueArrayforKeys:keyArray];
    NSLog(@"%@",dynamicDict);
   
    //替换元素元素
    [dynamicDict setObject:@"What"forKey:@"1"];
    //删除元素
    [dynamicDict removeObjectForKey:@"1"];

    NSLog(@"%@",dynamicDict);
}
int main(int argc, constchar * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
      //  staticCreatDictionary();
      //  others();
      //   keyAndValure();
       // ergodic();
        mutableDictionary();
    }
    return0;
}

转载于:https://www.cnblogs.com/shujucn/p/7481459.html

【Foundation Frame】NSDictionary/NSMutableDictionary相关推荐

  1. 【视频相关】视频中常出现的参数解释——2018年6月16日

    视频中常出现的参数解释 [帧 Frame] 帧速率(FPS,frame per second 帧率):每秒钟出现的帧数 由胶片概念的产生而出现,把静态的连续画面进行播放以达到动态影像需要每秒出现8格, ...

  2. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

    一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...

  3. 【响应式】foundation栅格布局的“尝鲜”与“填坑”

      提到响应式,就不得不提两个响应式框架--bootstrap和foundation.在标题上我已经说明白啦,今天给大家介绍的是foundation框架. 何为"尝鲜"?就是带大伙 ...

  4. 【安全开发】IOS安全编码规范

    申明:本文非笔者原创,原文转载自:https://github.com/SecurityPaper/SecurityPaper-web/blob/master/_posts/2.SDL%E8%A7%8 ...

  5. 【iOS 开发】Objective-C 运算符

    博客地址 : http://blog.csdn.net/shulianghan/article/details/41624613 参考文章 : 1.[iOS 开发]Object-C 运算符 2.[iO ...

  6. 【原】iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation【包会】

    在上一篇专题文章[原]iOSCoreAnimation动画系列教程(一):CABasicAnimation[包会]中我们学习了iOS核心动画CoreAnimation中CABasicAnimation ...

  7. 【Blender Python】随手一记

    [Blender Python]随手一记 一个猴头复制另一个猴头的形状 import bpydef update_mesh(scene):o1 = bpy.data.objects['猴头']o2 = ...

  8. 【生信】常见测序数据格式

    [生信]常见测序数据格式 文章的文字与图片全部/部分来源网络或学术论文,文章会持续修缮更新,仅供大家学习使用. 目录 [生信]常见测序数据格式 1.FASTA 2.FASTQ 3.GFF 4.BED ...

  9. 【iOS开发】从Cocoa框架说开去--Fundation框架系列

    [Cocoa简介] Cocoa是苹果公司为Mac OS X所创建的原生面向对象API 是Mac OS X上五大API之一.(其他四个:Carbon POSIX X11 Java)它是苹果的面向对象开发 ...

最新文章

  1. 【转】卡尔曼滤波算法详细推导(相当值得一看)
  2. 鼠標滑過表格整行改變背景色
  3. 开源的ResearchKit:苹果将如何颠覆未来医疗?
  4. C++ 性能剖析 (四):Inheritance 对性能的影响
  5. python 删除文件或文件夹
  6. SpringSecurity + JWT,从入门到精通!
  7. ArrayList方法源码
  8. Classification分类halcon算子,持续更新
  9. MATLAB库函数resample(重新采样序列)的C语言实现
  10. 前端学习(2831):小程序事件绑定
  11. 使用Powershell远程管理Windows Server(WinRM)
  12. gstat | 空间插值(二)——克里金插值之普通克里金
  13. POJ-2226 Muddy Fields 最小点集覆盖
  14. SQL到NoSQL概览性总结之一 数据库应用场景选型
  15. Spring4 快速入门
  16. Flink on K8s 在京东的持续优化实践
  17. thinkphp 中英文语言包
  18. 纪念王盘声逝世一周年王派演唱会成功举行
  19. 管家婆服务器安装显示配置失败,管家婆软件安装出错解决方法
  20. 2012年西安校园招聘会

热门文章

  1. docker查看容器创建命令
  2. Java详解:作为一个码农终于把MySQL日记看懂了
  3. java线程和操作系统线程的区别,赶紧收藏备战金三银四!
  4. python【蓝桥杯vip练习题库】ALGO-55 矩阵加法
  5. python极简主义_XData: 为 Python 之禅写的极简主义数据验证工具
  6. 实现点击空白关闭模态框
  7. 监管发文:规范大学生群体消费贷款,避免陷入消费贷款陷阱
  8. 企业网络推广期间关于网站分享功能设计有哪些细节需要加以重视?
  9. 网站优化如何才能避免无效收录?
  10. 网站优化之如何提升快照的更新时间?