iOS - 字典(NSDictionary)
1. 字典类型的常用处理
//---------------不可变字典
//1.字典的创建
NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei",nil];
NSArray *array2 = [NSArray arrayWithObjects:@"lisi",@"liping", nil];
//第一元素:key:@“zhang" value:array1
//第二元素:key: @"li: value:array2
NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:array1,@"zhang",array2,@"li", nil];
NSUInteger count = dic1.count; //字典元素个数
NSLog(@"count:%d",count);
//创建字典时初始化一个元素
NSDictionary *dic2 = [NSDictionary dictionaryWithObject:array1 forKey:@"zhang"];
NSLog(@"dic2 = %@",dic2);
//2.获取字典中所有的key
NSArray *allKeys = [dic1 allKeys]; //dic1.allKeys.
NSLog(@"allKeys= %@",allKeys);
//3.获取字典中所有的value
NSArray *allValues = [dic1 allValues];
NSLog(@"allValues = %@",allValues);
//4.通过key取得value
NSArray *array3 = [dic1 objectForKey:@"zhang"];
NSLog(@"array3 = %@",array3);
//------------字典中优化的方法
NSDictionary *dic3 = @{@"zhang": array1,@"li":array2};
NSLog(@"dic3 = %@",dic3);
//取value的语法:字典[”key“]
NSArray *array4 = dic3[@"zhang"]; //等价于:NSArray *array3 = [dic3 objectForKey:@"zhang"];
NSLog(@"array4 = %@",array4);
//--------------可变字典
//1.创建一个可变字典
NSMutableDictionary *md1 = [[NSMutableDictionary alloc] initWithCapacity:3];
//2.添加元素
[md1 setObject:array1 forKey:@"zhang"];
[md1 setObject:array2 forKey:@"li"];
NSLog(@"md1 = %@",md1);
//将字典dic1 中所有的元素添加到md1字典中
[md1 addEntriesFromDictionary:dic1];
NSLog(@"md1 = %@",md1);
// [md1 setObject:@"zhangsan" forKey:@"zhang"]; //如果添加相同的key,会将原来的Value覆盖掉
//3.删除(根据key删除元素)
[md1 removeObjectForKey:@"zhang"];
NSLog(@"md1 = %@",md1);
//删除所有元素(清空)
//[md1 removeObjects];
// //根据多个key删除对应的多个元素
// [md1 removeObjectsForKeys:@[@"zhang",@"li"]];
// NSLog(@"md1 = %@",md1);
//---------------------遍历字典
//1.快速遍历
for (NSString *key in md1) {
NSArray *name = [md1 objectForKey:key];
NSLog(@"快速遍历:key = %@,value = %@",key,name);
}
//2.普通遍历
NSArray *allKeys2 = [md1 allKeys];
for (int i = 0; i<allKeys.count - 1; i++) {
NSString *key = allKeys2[i];
NSArray *name = md1[key];
NSLog(@"普通遍历:key = %@,value = %@",key,name);
}
iOS - 字典(NSDictionary)的更多相关文章
- IOS字典NSDictionary与NSMutableDictionary知识点
字典中的元素是以键值对的形式存储的,键值对的键和值,都是任意的对象,但是键往往使用字符串,字典存储对象的地址没有顺序,字典的遍历分为:键的遍历和值的遍历,字典与数组的区别:数组讲究顺序,而字典可以快速 ...
- iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转
iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转 1. 字典转Json字符串 // 字典转json字符串方法 -(NSString *)convertToJs ...
- iOS - OC NSDictionary 字典
前言 @interface NSDictionary<__covariant KeyType, __covariant ObjectType> : NSObject <NSCopyi ...
- IOS 字典快速转换为Model 模型
一般情况下IOS得局部页面加载的过程是,创建一个Model然后,将Nib文件与Model进行关联,然后能够快速的获取到Nib文件上的控件实例.操作生成页面. 但是原生的内容是没有直接通过Json获取M ...
- IOS 字典模型互转框架 MJExtension
IOS 字典模型互转框架 MJExtension 能做什么? MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) --> ...
- iOS 字典或者数组和JSON串的转换
在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...
- iOS 字典与JSON相互转换
iOS 字典与JSON相互转换 首先简单说一下为什么会写这种幼稚的文章. 现在的网络请求几乎都是AFN完成的,AFN也为我们写了了JSON转换字典的方法,但是不要忘记后台是一个很爱用JSON的人群,H ...
- iOS —— 字典遍历排序
字典NSDictionary一般的遍历方法都是: NSArray* arr = [yourdictonary allKeys]; for(NSString* str in arr) { NSLog(& ...
- OC中的字典NSDictionary
========================== 字典 ========================== NSDictionary * dict = [[NSDictionary alloc] ...
随机推荐
- Android,iOS,浏览器打开手机QQ与指定用户聊天界面
在浏览器中可以通过JS代码打开QQ并弹出聊天界面,一般作为客服QQ使用.而在移动端腾讯貌似没有公布提供类似API,但是却可以使用schema模式来启动手机QQ. 以下为具体代码: 浏览器(包括手机浏览 ...
- 基础数据结构 之 栈(python实现)
栈是编程开发中的两种较为简单的数据结构.栈和队可用于模拟函数的递归.栈的特点是后进先出.其常用操作包括:出栈,入栈等.在出栈前,需判断栈是否为空.在入栈时,需判断栈是否已满. 下面给出一个用pytho ...
- poj1190生日蛋糕
生日蛋糕 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12277 Accepted: 4325 Description 7月1 ...
- delphi 选中的展开0级 子级不展开
TreeView1.Selected.Expand(False); //选中的展开0级 子级不展开 TreeView1.Selected.Expand(True); //全部展开 来自为知笔记(Wiz ...
- ValueBar
https://github.com/PhilJay/ValueBar
- iOS开发——动画篇Swift篇&动画效果的实现
Swift - 动画效果的实现 在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimation ...
- JS 文本输入框放大镜效果
JS 文本输入框放大镜效果 今天下午研究了下 "文本输入框放大镜效果" 当然KISSY官网也有这种组件 请看kissy demo 其实这种效果 对于很多童鞋来说 应该并不陌生!我今 ...
- mysql 5.7 多源复制 原创
一从两主:多源复制 每台mysql 服务器都需要加my.cnf要加两个参数才可以在GTID多源复制 master-info-repository=TABLE relay-log-info-reposi ...
- MySQL 灵异事件一则 -- desc报语法错误
今天有一开发同学找到我,说查询SQL中倒序报错,不明原因,于是奔赴工位现场研究情况. 果然,只要SQL中带有desc 就会报错,而ASC没问题. 哪怕desc放在句首用作explain也会报错. 报错 ...
- 小白日记16:kali渗透测试之弱点扫描-openvas、nessus
漏洞扫描工具 1.openvas OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器.在kali上默认集成openvas.在kali上,配置相对简单[几乎每天都在更新] 实 ...