NSDictionary、NSMutableDictionary及其枚举器的用法
- .不可变词典NSDictionary
- 字典初始化
- NSNumber *numObj = [NSNumber numberWithInt:];
- 以一个元素初始化
- NSDictionary *dic = [NSDictionary dictionaryWithObject:numObj forKey:@"key"];
- 初始化两个元素
- NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:numObj, @"valueKey", numObj2, @"value2",nil];
- 初始化新字典,新字典包含otherDic
- NSDictionary *dic = [NSDictionary dictionaryWithDictionary:otherDic];
- 以文件内容初始化字典
- NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];
- 常用方法
- 获取字典数量
- NSInteger count = [dic count];
- 通过key获取对应的value对象
- NSObject *valueObj = [dic objectForKey:@"key"];
- 将字典的key转成枚举对象,用于遍历
- NSEnumerator *enumerator = [dic keyEnumerator];
- 获取所有键的集合
- NSArray *keys = [dic allKeys];
- 获取所有值的集合
- NSArray *values = [dic allValues];
- .可变数组NSMutableDictionary
- 初始化一个空的可变字典
- NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];
- NSDictionary *dic3 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"];
- 向字典2对象中添加整个字典对象3
- [dic2 addEntriesFromDictionary:dic3];
- 向字典2对象中最佳一个新的key3和value3
- [dic2 setValue:@"value3" forKey:@"key3"];
- 初始化一个空的可变字典
- NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];
- 将空字典1对象内容设置与字典2对象相同
- [dic1 setDictionary:dic2];
- 将字典中key1对应的值删除
- [dic1 removeObjectForKey@"key1"];
- NSArray *array = [NSArray arrayWithObjects:@"key1", nil];
- 根据指定的数组(key)移除字典1的内容
- [dic2 removeObjectsForKeys:array];
- 移除字典所有对象
- [dic1 removeAllObjects];
- .遍历字典
- 快速枚举
- for (id key in dic){
- id obj = [dic key];
- NSLog(@"%@", obj);
- }
- NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
- for (NSString *key in dict) {
- NSLog(@"key: %@ value: %@", key, dict[key]);
- }
- 一般枚举
- NSArray *keys = [dic allKeys];
- inr length = [keys count];
- for (int i = ; i < length;i++){
- id key = keys[i];
- id obj = dic[key];
- NSLog(@"%@", obj);
- }
- 通过枚举类型枚举
- NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
- for (NSString *key in dict) {
- NSLog(@"key: %@ value: %@", key, dict[key]);
- }
NSDictionary、NSMutableDictionary及其枚举器的用法的更多相关文章
- objective-c系列-NSDictionary&NSMutableDictionary
********************************************* NSDictionary ***************************************** ...
- for..in遍历,枚举器
#pragma mark ------------for循环遍历集合中的元素------ //创建一个数组,包含5个字符串对象,倒序取出数组中的所有元素,并存储到另一可变数组中 NSArray *ar ...
- Foundation框架--字典( NSDictionary NSMutableDictionary )
基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #i ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary
NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...
- C# 枚举器(enumerator)
总结: 1.枚举器就像是序列中的"游标"或"书签".可以有多个"书签",移动其中任何一个都可以枚举集合,与其他枚举器互不影响.用来遍历数据结 ...
- ruby迭代器枚举器
迭代器一个迭代器是一个方法,这个方法里面有yield语句,使用了yield的方法叫做迭代器,迭代器并非一定要迭代,与传递给这个方法的块进行数据传输 yield将数据传给代码快,代码块再把数据传输给yi ...
- ruby中迭代器枚举器的理解
参考<ruby编程语言>5.3迭代器和可枚举对象 迭代器一个迭代器是一个方法,这个方法里面有yield语句,这个方法里的yield语句,与传递给这个方法的块进行数据传输 yield将数据传 ...
- JAVA中的数据结构——集合类(序):枚举器、拷贝、集合类的排序
枚举器与数据操作 1)枚举器为我们提供了访问集合的方法,而且解决了访问对象的“数据类型不确定”的难题.这是面向对象“多态”思想的应用.其实是通过抽象不同集合对象的共同代码,将相同的功能代码封装到了枚举 ...
随机推荐
- JqueryAjaxFormData文件异步上传
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- September 4th 2016 Week 37th Sunday
The morning crowned the humble cloud with splendor. 晨光为谦逊的白云披上壮丽的光彩. Humility is a virtue. Many famo ...
- oracle默认配置ora文件位置
unix:$ORACLE_HOME/dbsnt:c:\Oracle\ora81\database create spfile from pfile = '/home/oracle/initora11g ...
- hdu3038(带权并查集)
题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=3038 题意: n表示有一个长度为n的数组, 接下来有m行形如x, y, d的输入, 表示 ...
- Android Programming: Pushing the Limits -- Chapter 6: Services and Background Tasks
什么时候使用Service 服务类型 开启服务 后台运行 服务通信 附加资源 什么时候使用Service: @.任何与用户界面无关的操作,可移到后台线程,然后由一个Service来控制这个线程. 服务 ...
- Sexagenary Cycle(天干地支法表示农历年份)
Sexagenary Cycle Time Limit: 2 Seconds Memory Limit: 65536 KB 题目链接:zoj 4669 The Chinese sexagen ...
- Message Flood
Message Flood Time Limit: 1500MS Memory limit: 65536K 题目描述 Well, how do you feel about mobile phone? ...
- sqlplus使用(一)
一,sqlplus 环境变量 sqlplus的环境变量(来自SQL*Plus® User's Guide and Reference Release 11.2) Parameter or Variab ...
- Oracle 数据泵文件
数据泵文件 expdp介绍 EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_na ...
- JavaScript中new和this
[TOC] new var obj = new Base(); 相当于: var obj = {}; //创建空对象obj obj.__proto__ = Base.prototype; //将空对象 ...