OC-字典
1.所有的key都是一个字符串,键 值是成对出现的。且都不能为空,非要为空要使用NSnull。字典是通过key来存取值的,key valu必须成对出场
2.字典是有键-值的数据组合,通过key查找对于的value,值可以是其他任意的类型,key必须是唯一的。
3.为什么要使用字典呢?而不使用数组?
答?数组特征:数组是按一定顺序排列的集合,通过下标去取值(当希望数据室按照一定的顺序去排列的时候,选择用数组);
字典的特征:通过key存取值(获取一个标记准确的得到一个我们想要的值,数组的话如果下标不知道的话,就无法取到想要的值),key是我们指定的一个标记。
4.字典初始化:
a.初始化空字典:
NSDictionary *dic = [[NSDictionary alloc]init];
NSDictionary *dic1 = [NSDictionary dictionary];
b.初始化的同时并添加一对键、值
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"value" forKey:@“key9”];
c.初始化的同时并添加多对值
NSDictionary *str3 = [NSDictionary dictionaryWithObjectsAndKeys:@"object1",@"key1",@"object2",@"key2",@"object3",@"key3", nil];
d.新写法
NSDictionary *dic= @{@“key”:@"值"};
5.将字典的元素添加到另一个字典
将dic1中所有的元素添加到dic中
[dic addEntriesFromDictionary :dic1];
不能重复是key 替换以后包括值都替换了(添加相同的key 会将原来的value覆盖掉)
根据key删除元素
[dic removeObjectForKey :@“cheng”]
根据多个key删除多个元素
[dic removeObjectForKey :@[@“cheng”,@“hong”]]
6.字典的取值
1.NSString *n = [dic5 objectforkey:@“key”];
2.NSString *n = dic [@“key”];
7.遍历字典
快速遍历
比普通遍历要简洁
allkeys 是所有key的一个数组
count 是得到数组内有多少个元素
例子:NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@(80),@"语文",@(100),@"数学",@(99),@"英语", nil];
1.for(id n in dic.allkeys)//(记得加上点哦)是利用数组的思想
{NSLog(@“%@ %@”,n,objectforkey:uu);或者NSLog(@“%@ %@”,n,dic[uu])
}
2.for (NSString *key in dic){
NSLog(@"w%@%@",key,dic[key]);
}//也可以直接找出里面的key。
7.字典嵌套
首先要先取出要哪个值所在的字字典,然后再取出对应的值。
8.可变字典.
和数组差不多
[NSMutableDictionary *dic = dictionary];
//通过key设置字典里面的值(相同的key就替换了)
[dic setObject:@"苹果" forKey:@"Apple"];
[array setObject:@"123" forKey:@"Apple"];
//通过key移除字典里面的值(两个都移除了)
[dic removeObjectForKey:@"Apple"];
NSLog(@"%@",dic);
//和数组一样,不能使用这种初始化方式:@{@“”:@“”,@“”:@“”};
但可以用新方法输出dic[@""];。
OC-字典的更多相关文章
- KVC 和 OC字典
KVC(键值编码)和OC 字典很相似,都是键值存储.但是OC 字典比较灵活,它是一种映射. [dict setObject:<#(id)#> forKey:<#(id<NSCo ...
- OC字典的使用
在OC中,字符串.数组.字典是最常见的对象类型,但是在这三个当中,字典的用法相对较少,因为字典的属性和方法比较少,但是一个字典的用法比较复杂,因为在一个字典当中,既可以包含字符串,也可以包含数组,数组 ...
- OC ---- 字典集合 iOS学习-----细碎知识点总结
实例方法的创建 NSDictionary *wukong = [[NSDictionary alloc] initWithObjectsAndKeys:", @"age" ...
- oc字典放入到数组里,根据字典里的属性排序(重点)
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- oc字典
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- 42 (OC)* 字典实现原理--哈希原理
一.NSDictionary使用原理 1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的,hash函数设计的好坏影响着数据的查找访问效率. - (void ...
- OC 字典dictionaryWithObjectsAndKeys报错
字典dictionaryWithObjectsAndKeys crash,也没有控制台打印输出: 解决方案!! 1.检查dictionaryWithObjectsAndKeys中的object key ...
- iOS - OC - 字典快速遍历
1. [dic enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop ...
- WebViewJavascriptBridge源码探究--看OC和JS交互过程
今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFr ...
- oc总结
OC10天大纲 一.类和对象 1.什么是类? 同一种对象的抽象就是类. 2.什么是对象? 世界上的任何事物都可以称为对象,每个对象都有他自己的属性和行为. 3.如何创建一个类(请把一个.h和一个.m粘 ...
随机推荐
- Day06_面向对象第一天
1.JAVA中的参数传递问题(掌握) 基本类型 形式参数的改变对实际参数没有影响 基本类型的实际参数和形式参数可以看作两个变量,这两个变量分别操作各自的数据,所以互不影响 引用类 ...
- 使用jetty-maven-plugin插件进行测试
为了能够使用maven的jetty插件对项目进行测试,需要进行如下操作: (1)修改maven配置文件 为了能够在命令行中使用jetty命令,需要修改maven的配置文件settings.xml文件, ...
- java script 闭包
闭包的概念真的是很绕,我就来点实际的代码. 当我用下面的代码的时候 发生了闭包,当执行onclick事件的时候,变量一直引用了外部函数的变量,结果i总是4 function newLoad() { / ...
- ubuntu 状态栏不显示时间
有时候我们会看到我们电脑的状态栏那里并没有显示时间,一个原因是日期时间指示器没有工作,另一个可能的原因是用户禁用了时间显示. 方法一: 首先我们用下面的命令来确认一下是否安装了日期时间指示器: sud ...
- sgu551 Preparing Problem
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=551 呵呵,题目读的没错,可惜理解错了..== #include <cstdi ...
- hdu3639 强连通
题意:有 n 个人,m 组支持关系,已知支持关系可以传递,比如 A 支持 B,则所有支持 A 的人也同时支持 B,问哪些人获得的支持数最多,最多获得多少支持(自己不能获得自己的支持). 首先,如果一些 ...
- apply通过实例理解
测试->运行环境chrom console >var aaa = {a:1,b:2,c:function(){console.log(this.a)}} 运行结果:undefined &g ...
- Maximum number of WAL files in the pg_xlog directory (2)
Jeff Janes: Hi, As part of our monitoring work for our customers, we stumbled upon an issue with our ...
- vb6异步ADO操作
Private withevents M_Conn as adodb.connection Private CmdFinished as boolean sub somesub AdoCmd.Exec ...
- shell流程控制语句
linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while,until),选择语句(case/select).下面我将通过例子介绍下,各个语句使用方法. 1 ...