OC字典的使用
在OC中,字符串、数组、字典是最常见的对象类型,但是在这三个当中,字典的用法相对较少,因为字典的属性和方法比较少,但是一个字典的用法比较复杂,因为在一个字典当中,既可以包含字符串,也可以包含数组,数组里面的值是有序的,字典里面的键值对是没有序的,所以字典的使用往往和其他对象类型的使用混杂在一起,熟练掌握这些对象类型的使用时学好OC的基础。
字典的标志为:@{},在括号中就是字典的具体类容,在字典中保存的是一对一对存在的键值对,例如:@{@"userName":@"xiaowang",@"designserName":@"xiaoli"};一个键对应一个值,键是唯一的,但是值可以不唯一,所以我们可以通过键查找值,而不能通过值查找键,例如:
但是我们可以获取所有的键,并且用一个数组来保存所有的键,例如:
而且我们也可以获取所有的值,用的方法和上面获取所有的键的方法差不多,同样可以用一个数组来保存:NSArray *values = [dic allValues];
同样的,既然我们可以把所有的键保存在一个数组里面,那么我们就可以遍历这个数组获取整个数组的值,像这样:
字典也分为可变字典和不可变字典,上面已经讲解了不可变字典的使用,下面我们讲解一下可变字典。
可变字典较之不可变字典多出来的功能主要有更改和删除,这两项操作都是通过键来实现的,因为键和值总是成对出现,所以删除了键,对应的值也会被删除。
更改和添加键值对的方式是一样的,都使用setObject: forKey: 的方法,
好了,字典的使用大概就是这些,感谢阅读!
OC字典的使用的更多相关文章
- KVC 和 OC字典
KVC(键值编码)和OC 字典很相似,都是键值存储.但是OC 字典比较灵活,它是一种映射. [dict setObject:<#(id)#> forKey:<#(id<NSCo ...
- 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粘 ...
随机推荐
- 定时器&改变定时器的执行频率
static System.Threading.Timer timer; static void Main(string[] args) { Console.WriteLine("Press ...
- splice的用法
splice向数组中删除/添加新元素,然后返回新数组 arrObject.splice(index,howmany,item1,...,itemx); 参数 描述 index 必需.整数,规定添加/删 ...
- 微信小程序获取二维码参数
var scene = decodeURIComponent(options.scene)
- 从零开始学spring cloud(八) -------- Eureka 高可用机制
一.Eureka高可用机制介绍 Eureka服务器没有后端存储,但注册表中的服务实例都必须发送心跳以使其注册保持最新(因此可以在内存中完成). 客户端还有一个Eureka注册的内存缓存(因此,他们不必 ...
- Oracle lag()/lead() over()分析函数
with tmp as(select '1' id ,'aa' name ,'22' age from dual union allselect '2' id ,'bb' name ,'20' age ...
- thinkphp5实现多级控制器
默认情况下目录结构 application ->admin->controller->class.php 当项目比较多的时候,目录下控制器文件较多,考虑按模块增加一层目录 appli ...
- POJ 3162.Walking Race 树形dp 树的直径
Walking Race Time Limit: 10000MS Memory Limit: 131072K Total Submissions: 4123 Accepted: 1029 Ca ...
- oracle使用数据泵进行数据的导入导出
https://m.jb51.net/article/32352.htm
- python3 第二十八章 - 内置函数之List相关
Python包含以下函数: 序号 函数 实例 1 list.append(obj)在列表末尾添加新的对象 2 list.count(obj)统计某个元素在列表中出现的次数 3 list.ext ...
- Sublime Text 3安装emmet(ZenCoding)
1.安装 Package Ctrol: 使用 ctrl + - 打开控制台,输入以下代码 import urllib.request,os; pf = 'Package Control.sublime ...