1. .不可变词典NSDictionary
  2.  
  3. 字典初始化
  4.  
  5. NSNumber *numObj = [NSNumber numberWithInt:];
  6.  
  7. 以一个元素初始化
  8.  
  9. NSDictionary *dic = [NSDictionary dictionaryWithObject:numObj forKey:@"key"];
  10.  
  11. 初始化两个元素
  12.  
  13. NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:numObj, @"valueKey", numObj2, @"value2",nil];
  14.  
  15. 初始化新字典,新字典包含otherDic
  16.  
  17. NSDictionary *dic = [NSDictionary dictionaryWithDictionary:otherDic];
  18.  
  19. 以文件内容初始化字典
  20.  
  21. NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];
  22.  
  23. 常用方法
  24.  
  25. 获取字典数量
  26.  
  27. NSInteger count = [dic count];
  28.  
  29. 通过key获取对应的value对象
  30.  
  31. NSObject *valueObj = [dic objectForKey:@"key"];
  32.  
  33. 将字典的key转成枚举对象,用于遍历
  34.  
  35. NSEnumerator *enumerator = [dic keyEnumerator];
  36.  
  37. 获取所有键的集合
  38.  
  39. NSArray *keys = [dic allKeys];
  40.  
  41. 获取所有值的集合
  42.  
  43. NSArray *values = [dic allValues];
  44.  
  45. .可变数组NSMutableDictionary
  46.  
  47. 初始化一个空的可变字典
  48.  
  49. NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];
  50.  
  51. NSDictionary *dic3 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"];
  52.  
  53. 向字典2对象中添加整个字典对象3
  54.  
  55. [dic2 addEntriesFromDictionary:dic3];
  56.  
  57. 向字典2对象中最佳一个新的key3value3
  58.  
  59. [dic2 setValue:@"value3" forKey:@"key3"];
  60.  
  61. 初始化一个空的可变字典
  62.  
  63. NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];
  64.  
  65. 将空字典1对象内容设置与字典2对象相同
  66.  
  67. [dic1 setDictionary:dic2];
  68.  
  69. 将字典中key1对应的值删除
  70.  
  71. [dic1 removeObjectForKey@"key1"];
  72.  
  73. NSArray *array = [NSArray arrayWithObjects:@"key1", nil];
  74.  
  75. 根据指定的数组(key)移除字典1的内容
  76.  
  77. [dic2 removeObjectsForKeys:array];
  78.  
  79. 移除字典所有对象
  80.  
  81. [dic1 removeAllObjects];
  82.  
  83. .遍历字典
  84.  
  85. 快速枚举
  86.  
  87. for (id key in dic){
  88.  
  89. id obj = [dic key];
  90.  
  91. NSLog(@"%@", obj);
  92.  
  93. }
  94.  
  95. NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
  96.  
  97. for (NSString *key in dict) {
  98. NSLog(@"key: %@ value: %@", key, dict[key]);
  99. }
  100.  
  101. 一般枚举
  102.  
  103. NSArray *keys = [dic allKeys];
  104.  
  105. inr length = [keys count];
  106.  
  107. for (int i = ; i < lengthi++){
  108.  
  109. id key = keys[i];
  110.  
  111. id obj = dic[key];
  112.  
  113. NSLog(@"%@", obj);
  114.  
  115. }
  116.  
  117. 通过枚举类型枚举
  118.  
  119. NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
  120.  
  121. for (NSString *key in dict) {
  122. NSLog(@"key: %@ value: %@", key, dict[key]);
  123. }
  124.   

NSDictionary、NSMutableDictionary及其枚举器的用法的更多相关文章

  1. objective-c系列-NSDictionary&NSMutableDictionary

    ********************************************* NSDictionary ***************************************** ...

  2. for..in遍历,枚举器

    #pragma mark ------------for循环遍历集合中的元素------ //创建一个数组,包含5个字符串对象,倒序取出数组中的所有元素,并存储到另一可变数组中 NSArray *ar ...

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

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

  4. 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...

  5. 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary

    NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...

  6. C# 枚举器(enumerator)

    总结: 1.枚举器就像是序列中的"游标"或"书签".可以有多个"书签",移动其中任何一个都可以枚举集合,与其他枚举器互不影响.用来遍历数据结 ...

  7. ruby迭代器枚举器

    迭代器一个迭代器是一个方法,这个方法里面有yield语句,使用了yield的方法叫做迭代器,迭代器并非一定要迭代,与传递给这个方法的块进行数据传输 yield将数据传给代码快,代码块再把数据传输给yi ...

  8. ruby中迭代器枚举器的理解

    参考<ruby编程语言>5.3迭代器和可枚举对象 迭代器一个迭代器是一个方法,这个方法里面有yield语句,这个方法里的yield语句,与传递给这个方法的块进行数据传输 yield将数据传 ...

  9. JAVA中的数据结构——集合类(序):枚举器、拷贝、集合类的排序

    枚举器与数据操作 1)枚举器为我们提供了访问集合的方法,而且解决了访问对象的“数据类型不确定”的难题.这是面向对象“多态”思想的应用.其实是通过抽象不同集合对象的共同代码,将相同的功能代码封装到了枚举 ...

随机推荐

  1. JqueryAjaxFormData文件异步上传

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  2. September 4th 2016 Week 37th Sunday

    The morning crowned the humble cloud with splendor. 晨光为谦逊的白云披上壮丽的光彩. Humility is a virtue. Many famo ...

  3. oracle默认配置ora文件位置

    unix:$ORACLE_HOME/dbsnt:c:\Oracle\ora81\database create spfile from pfile = '/home/oracle/initora11g ...

  4. hdu3038(带权并查集)

    题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=3038 题意: n表示有一个长度为n的数组, 接下来有m行形如x, y, d的输入, 表示 ...

  5. Android Programming: Pushing the Limits -- Chapter 6: Services and Background Tasks

    什么时候使用Service 服务类型 开启服务 后台运行 服务通信 附加资源 什么时候使用Service: @.任何与用户界面无关的操作,可移到后台线程,然后由一个Service来控制这个线程. 服务 ...

  6. Sexagenary Cycle(天干地支法表示农历年份)

    Sexagenary Cycle Time Limit: 2 Seconds      Memory Limit: 65536 KB 题目链接:zoj 4669 The Chinese sexagen ...

  7. Message Flood

    Message Flood Time Limit: 1500MS Memory limit: 65536K 题目描述 Well, how do you feel about mobile phone? ...

  8. sqlplus使用(一)

    一,sqlplus 环境变量 sqlplus的环境变量(来自SQL*Plus® User's Guide and Reference Release 11.2) Parameter or Variab ...

  9. Oracle 数据泵文件

    数据泵文件 expdp介绍 EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_na ...

  10. JavaScript中new和this

    [TOC] new var obj = new Base(); 相当于: var obj = {}; //创建空对象obj obj.__proto__ = Base.prototype; //将空对象 ...