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-字典的更多相关文章

  1. KVC 和 OC字典

    KVC(键值编码)和OC 字典很相似,都是键值存储.但是OC 字典比较灵活,它是一种映射. [dict setObject:<#(id)#> forKey:<#(id<NSCo ...

  2. OC字典的使用

    在OC中,字符串.数组.字典是最常见的对象类型,但是在这三个当中,字典的用法相对较少,因为字典的属性和方法比较少,但是一个字典的用法比较复杂,因为在一个字典当中,既可以包含字符串,也可以包含数组,数组 ...

  3. OC ---- 字典集合 iOS学习-----细碎知识点总结

    实例方法的创建 NSDictionary *wukong = [[NSDictionary alloc] initWithObjectsAndKeys:", @"age" ...

  4. oc字典放入到数组里,根据字典里的属性排序(重点)

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  5. oc字典

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  6. 42 (OC)* 字典实现原理--哈希原理

    一.NSDictionary使用原理 1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的,hash函数设计的好坏影响着数据的查找访问效率. - (void ...

  7. OC 字典dictionaryWithObjectsAndKeys报错

    字典dictionaryWithObjectsAndKeys crash,也没有控制台打印输出: 解决方案!! 1.检查dictionaryWithObjectsAndKeys中的object key ...

  8. iOS - OC - 字典快速遍历

    1. [dic enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop ...

  9. WebViewJavascriptBridge源码探究--看OC和JS交互过程

    今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFr ...

  10. oc总结

    OC10天大纲 一.类和对象 1.什么是类? 同一种对象的抽象就是类. 2.什么是对象? 世界上的任何事物都可以称为对象,每个对象都有他自己的属性和行为. 3.如何创建一个类(请把一个.h和一个.m粘 ...

随机推荐

  1. windows操作系统的快捷键

    编号:1015时间:2016年5月26日09:25:34功能:windows操作系统的快捷键URL:https://www.douban.com/group/topic/5937774/

  2. 【Bear】api分类

    参考 jQuery API 中文文档

  3. QEMU Guest Agent

    QEMU Guest Agent It is a daemon program running inside the domain which is supposed to help manageme ...

  4. Neutron Metering as a Service

    1, /etc/neutron/neutron.conf   service_plugins = router,metering    notification_driver=neutron.open ...

  5. 阿里云Centos中二级域名绑定二级目录的方法

    对于一些目录,我们往往需要对其指定二级域名,那么具体如何操作呢?下面,我将用亲身实践来说明一下. 由于第一次接触centos,我不得不借助于网络资源.然后得知要开启mod_rewrite这个模块,具体 ...

  6. Linux 线程--那一年, 我们一起忽视的pthread_join

    前言: 通过linux的pthread库, 相信大家对创建/销毁线程肯定很熟悉, 不过对pthread_join是否知道的更多呢?实验: 先编写一个常规的程序 #include <pthread ...

  7. 浅谈C中的malloc和free

    转自http://bbs.bccn.net/thread-82212-1-1.html非常感谢作者 浅谈C中的malloc和free 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的 ...

  8. Codeforces Round #147 (Div. 2)

    A. Free Cash 判断值相同的最长长度. B. Young Table 按从上到下,从左到右排序,每个位置最多交换一次. C. Primes on Interval \(p_i\)表示位置\( ...

  9. POJ 2251 Dungeon Master --- 三维BFS(用BFS求最短路)

    POJ 2251 题目大意: 给出一三维空间的地牢,要求求出由字符'S'到字符'E'的最短路径,移动方向可以是上,下,左,右,前,后,六个方向,每移动一次就耗费一分钟,要求输出最快的走出时间.不同L层 ...

  10. away3d学习

    http://www.cnblogs.com/flash3d/p/3403109.html M3U8文件简介:http://blog.sina.com.cn/s/blog_6cf7acdf0102v0 ...