黑马程序员-NSDictionary和NSMutableDictionary
NSDictionary和NSMutableDictionary:通过key和value进行对应,进行存储元素,能够方便提取所需的元素。
key是不能够重复出现,但是value能够重复出现。
NSDictionary:不可变词典,无序,能够通过key取出对应的value。
创建方法:
1、创建一个字典,并存储一个键值对
NSDictionary *d = [NSDictionary dictionaryWithObject:@"beijing" forKey:@"name"];
2、通过key,获得value
NSString *name = [d objectForKey:@"name"];
3、传入两个不可变数组进行字典的创建
NSArray *key = @[@"name",@"address"];
NSArray *value = @[@"beijing",@"china"];
NSDictionary *d2 = [NSDictionary dictionaryWithObjects:value forKeys:key];
4、一次创建完成字典
NSDictionary *d3 = @{@"name": @"beijing",@"country: @"china"};
5、返回键值对的个数
int count = d3.count;
NSMutableDictionary(可变字典集合)
可以先创建一个字典,再往字典加入键值对
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:@"北京" forKey:@"address"];
可以移除键值对
[dict removeObjectForKey:@"address"];
Dictionary字典集合的遍历
可以使用for循环进行遍历
NSArray *keys = [dict allKeys];
for (int i = 0; i < keys.count ; i++) {
NSString *value = [dict objectForKey:keys[i]];
NSLog(@"%@---%@",keys[i],value);
}
也可以使用block进行遍历
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
}];
黑马程序员-NSDictionary和NSMutableDictionary的更多相关文章
- 黑马程序员——【Java高新技术】——代理
---------- android培训.java培训.期待与您交流! ---------- 一.“代理概述”及“AOP概念” (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法 ...
- 黑马程序员+SQL基础(上)
黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...
- 黑马程序员+Winform基础(上)
黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...
- 黑马程序员—C语言的函数、数组、字符串
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.函数 定义:函数是代码复用的一种机制. 函数的基本语法: 返回类型 函数名 ( 参数类型 参 ...
- 黑马程序员:Java基础总结----泛型(高级)
黑马程序员:Java基础总结 泛型(高级) ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...
- 黑马程序员:Java基础总结----类加载器
黑马程序员:Java基础总结 类加载器 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个 ...
- 黑马程序员:Java基础总结----静态代理模式&动态代理
黑马程序员:Java基础总结 静态代理模式&动态代理 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 静态代理模式 public class Ts { ...
- 黑马程序员:Java基础总结----枚举
黑马程序员:Java基础总结 枚举 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...
- 黑马程序员:Java基础总结----反射
黑马程序员:Java基础总结 反射 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 反射 反射的基石:Class类 Class类代表Java类,它的各个实例对象又分别 ...
- 黑马程序员:Java基础总结----JavaBean 内省
黑马程序员:Java基础总结 JavaBean 内省 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! JavaBean 内省 软件包 java.beans 包含与开 ...
随机推荐
- mix_alternates_for_parent: TRUE
主替代料的消耗问题就没有了mix_alternates_for_parent: TRUEmix_alternate_per_unit_parent: TRUE D:\JDA\JDAv800\FP\in ...
- Sql 触发器禁用和启用
--启用or禁用指定表所有外键约束 alter table tbname NOCHECK constraint all alter table tbname CHECK constraint all ...
- Endless Sky源码学习笔记-5
游戏启动后的UI划分为三个区域,左侧滚动显示credits等信息以及偏好设置和退出按钮,中间显示载入动画,右侧显示玩家信息以及载入存档按钮,调用void MenuPanel::Draw()实现.首先画 ...
- 【Android端APP 安装包检查】安装包检查具体内容及实现方法
一.安装包检查的具体包含内容有哪些? 1.安装包检查的一般内容包括: 安装包基本信息检查: 文件大小: xx MB 包名: com.xx 名称: xx 本次安装包证书与外网证书对比一致性:是 版本号 ...
- ios -网络加载json和本地加载json
1网络加载json的时候,要在模型的实现文件里写: - (void)setValue:(id)value forKey:(NSString *)key { } 2本地加载json的时候,要在模型的实现 ...
- Unity3D中制作Loading场景进度条
背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景.由于Loading场景包含的资源较少,所以 ...
- PLSQLDeveloper 提示不能初始化?
原因: oracle数据库是64位的,而 PLSQL Developer 只有32位的! 下载PLSQL_Developer地址: http://pan.baidu.com/share/link?sh ...
- jQuery Mobile 网格布局
jQuery Mobile 布局网格 jQuery Mobile 提供了一套基于 CSS 的列布局方案.不过,一般不推荐在移动设备上使用列布局,这是由于移动设备的屏幕宽度所限. 但是有时你需要定位更小 ...
- Nginx-->基础-->理论-->002:Nginx进程介绍
一.Nginx进程介绍
- 记录Qt的一个诡异Bug
公司的一款项目,在迭代开发阶段,突然发现运行速度越来越慢,界面切换卡顿时间在2秒以上.经过和某个不卡版本的对比,惊奇的发现程序二进制都一模一样,就几个图片资源和脚本不一样.经过差不多一天的排查,发现是 ...