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)枚举器为我们提供了访问集合的方法,而且解决了访问对象的“数据类型不确定”的难题.这是面向对象“多态”思想的应用.其实是通过抽象不同集合对象的共同代码,将相同的功能代码封装到了枚举 ...
随机推荐
- Java_内存管理String and Array
题目1.指出下列程序运行的结果 ()public class Example { String str = new String("good"); char[] ch = { 'a ...
- Java代码简化神器-Lombok
一.背景 前段时间在开源社区中发现了一个比较牛逼的简化Java代码的神器-Lombok,接着自己写了demo进行测试和练习,感觉真的很不错,特此分享给需要的小伙伴们~ 二.开发之前的准备 1.lomb ...
- 如何用Endnote导入你要用的格式
在Google搜索某一个期刊名 ens格式的文件,下载,然后放入endnote的文件夹中(C:\Program Files (x86)\EndNote X7\Styles) 然后将其导入即可
- NYOJ题目840吃花生
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAKdCAIAAABeSGNbAAAgAElEQVR4nO3dPXKkuvv28f8mnHshjn
- Django环境配置
Django安装 #安装最新版本的Django $ pip install django #或者指定安装版本 pip install -v django==1.7.1 项目创建 $ django-ad ...
- Android Tab -- 使用Fragment、FragmentManager来实现
原文地址:http://blog.csdn.net/crazy1235/article/details/42678877 效果: 代码:https://github.com/ldb-github/La ...
- MVC - 19.Log4net
下载地址:http://pan.baidu.com/s/1gdxQegN 对于网站来讲,我们不能将异常信息显示给用户, Log4Net用来记录日志,可以将程序运行过程中的信息输出到文件,数据库中等 ...
- SQL高级查询技巧(两次JOIN同一个表,自包含JOIN,不等JOIN)
掌握了这些,就比较高级啦 Using the Same Table Twice 如下面查询中的branch字段 SELECT a.account_id, e.emp_id, b_a.name open ...
- 使用.NET Framework的配置文件app.config
在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web项目中的 ...
- [Linux] 取得服务器版本
1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如: [root@3.5.5Biz-46 ~]# lsb_release -a LSB Version: 1.3 Dis ...