在OC中,字符串、数组、字典是最常见的对象类型,但是在这三个当中,字典的用法相对较少,因为字典的属性和方法比较少,但是一个字典的用法比较复杂,因为在一个字典当中,既可以包含字符串,也可以包含数组,数组里面的值是有序的,字典里面的键值对是没有序的,所以字典的使用往往和其他对象类型的使用混杂在一起,熟练掌握这些对象类型的使用时学好OC的基础。

  字典的标志为:@{},在括号中就是字典的具体类容,在字典中保存的是一对一对存在的键值对,例如:@{@"userName":@"xiaowang",@"designserName":@"xiaoli"};一个键对应一个值,键是唯一的,但是值可以不唯一,所以我们可以通过键查找值,而不能通过值查找键,例如:

但是我们可以获取所有的键,并且用一个数组来保存所有的键,例如:

而且我们也可以获取所有的值,用的方法和上面获取所有的键的方法差不多,同样可以用一个数组来保存:NSArray *values = [dic allValues];

  同样的,既然我们可以把所有的键保存在一个数组里面,那么我们就可以遍历这个数组获取整个数组的值,像这样:

  字典也分为可变字典和不可变字典,上面已经讲解了不可变字典的使用,下面我们讲解一下可变字典。

  可变字典较之不可变字典多出来的功能主要有更改和删除,这两项操作都是通过键来实现的,因为键和值总是成对出现,所以删除了键,对应的值也会被删除。

更改和添加键值对的方式是一样的,都使用setObject:   forKey:  的方法,

  好了,字典的使用大概就是这些,感谢阅读!

OC字典的使用的更多相关文章

  1. KVC 和 OC字典

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

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

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

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

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

  4. oc字典

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

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

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

  6. OC 字典dictionaryWithObjectsAndKeys报错

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

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

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

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

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

  9. oc总结

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

随机推荐

  1. scrapy 断点续爬

    第一步:安装berkeleydb数据库 第二部:pip install bsddb3 第三部:pip install scrapy-deltafetch 第四部: settings.py设置 SPID ...

  2. ucos中的中断管理

    一.中断的概念 中断是一种硬件机制,用于处理异步事件.中断的实时性比轮询要好,通过中断,微控制器可以在异常发生的时候立刻进行处理,而不需要不断轮询事件是否发生. CM3支持中断嵌套,使得高优先级异常可 ...

  3. python之列表及其方法---整理集

    列表类,类名是list 通过list类创建对象,使用中括号 列表特性: 使用中括号括起来 中间用逗号分隔每个元素 元素可以是数字.字符串.布尔值.列表 列表中可以嵌套列表 列表中每个元素的下标从0开始 ...

  4. Jmeter Distributed (Remote) Testing: Master Slave Configuration

    What is Distributed Testing? DistributedTestingis a kind of testing which use multiple systems to pe ...

  5. python3作业:模拟登录

    __author__ = "bin007" customer = {}#存储用户信息#处理用户信息文件try: with open('login.txt','r',encoding ...

  6. [Spring实战笔记]4面向切面编程的Spring-代理

    代理 代理(Proxy)是一种设计模式,可以在目标对象实现的基础上,扩展目标对象的功能. 代理对象是对目标对象的扩展,并会调用目标对象. 三种代理模式 静态代理 100% 代理对象与目标对象要实现相同 ...

  7. 关于easyui框架中a标签使用onclick()触发事件偶尔会选项卡消失BUG解决方案

    今天发现公司的一个easyui项目中有个页面会在触发onclick事件时选项卡消失,如下图 产生BUG后 产生BUG前 查找很多地方还有资料不知道哪里出现的问题,看了下框架源码之类的,因为不是专门的前 ...

  8. SpringCloud微服务基础

    1.传统项目架构  传统项目分为三层架构,将业务逻辑层.数据库访问层.控制层放入在一个项目中.适合于个人或者小团队开发,不适合大团队开发. 2.分布式项目架构(解耦方案) 根据业务需求进行拆分成N个子 ...

  9. python 标准库 glob ,python glob 学习

    glob库是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用 windows 下的文件搜索差不多.查找文件只用到三个匹配符: ”*”, 匹配 个或多个字符: “?”, ”?” ...

  10. eclipse Filter web.xml 问题解决 异步请求@WebServlet

    <filter> <filter-name>AsynServlete</filter-name> <filter-class>com.kad.app.a ...