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. matlab 不要图像界面

    参考文献matlab -nodesktop

  2. 用UltralSO安装CentOS 和 Ubuntu

    UltralSO是一个U盘制作工具,这几天用UltralSO安装了CentOS和Ubuntu 制作这两个U盘启动程序的区别是,CentOS安装完后,需要把.iso文件拷贝到U盘中,而且CentOS文件 ...

  3. 【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  4. 兼容性所有浏览器的透明CSS设置

    兼容所有浏览器的透明CSS设置: .transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0. ...

  5. css中解决img在a元素中使得a元素撑大写法

    给外面a标签padding-left:; img自身float:left;margin-left:; 这种写法避免了不少因浮动产生的问题,且代码简明,推荐适当的使用此方法.

  6. The Hidden Pitfalls of AsyncTask

    http://logc.at/2011/11/08/the-hidden-pitfalls-of-asynctask/

  7. winrar在右键菜单上加上:打包自动加上日期时间标签【图文教程】 - imsoft.cnblogs

    说明:  注册表HKEY_CURRENT_USER\Software\WinRAR\Profiles\0找到GenerateArcName修改0为1,修改GenerateMask为你想要的日期式(默认 ...

  8. centos网页乱码

    修改vi /etc/my.cnf  [client] (新增)default-character-set=utf8  [mysql] (添加)default-character-set=utf8

  9. 215. Kth Largest Element in an Array

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  10. jQuery显示隐藏动态效果的几种写法

    <script type="text/javascript"> $(document).ready(function() {     /*$("#test1& ...