iOS-OC-基础-NSDictionary常用方法
/*=============================NSDictionary(不可变字典)的使用=========================*/
//————————————————————————————————字典的创建————————————————————————————————
// 前面的是值(value),后面的是键(key),一一对应
// 方式一:
NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil];
NSLog(@"dic :%@",dic);
// 方式二:
NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil];
// 字典的value可以说任何对象类型
NSArray *array = @[@"",@"",@""];
NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:array,@"key" ,nil];
NSLog(@"dic2 :%@",dic2);
NSDictionary *dic3 = [[NSDictionary alloc] initWithObjectsAndKeys:dic2,@"dicKey", nil];
NSLog(@"dic3 :%@",dic3);
// 方式三:跟方式一区分,只能是不可变字典
NSDictionary *dic4 = @{@"key":@"vlaue",@"key1":@"value1"};
NSLog(@"dic4 :%@",dic4);
//————————————————————————————————字典的常用方法—————————————————————————————
// count 字典元素的个数,键值一起为一个元素
NSUInteger len = [dic4 count];
NSLog(@"len = %ld",len);
//objectForKey :根据key取对应的值,如果可以没有不会报错,返回的是null
id obj = [dic3 objectForKey:@"dicKey"];
NSLog(@"obj:%@",obj);
//allKeys 获取字典的所有key,返回的是数组
NSArray *allKeys = [dic4 allKeys];
NSLog(@"allKeys :%@",allKeys);
//allValues 获取字典的所有Value,返回的是数组
NSArray *allValues = [dic4 allValues];
NSLog(@"allValues: %@",allValues);
//allKeysForObject 获取相同value的所有key
NSDictionary *dic5 = @{@"key":@"value",@"key1":@"value"};
NSArray *allKey = [dic5 allKeysForObject:@"value"];
NSLog(@"allKey :%@",allKey);
/*=============================NSMutableDictionary(可变字典)的使用=========================*/
//————————————————————————————————可变字典的创建————————————————————————————————
// 两种方式:
NSMutableDictionary *mDic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"abc",@"key",@"hhhh",@"key1", nil];
NSMutableDictionary *mDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil];
//NSMutableDictionary *mDic2 = @{@"key":@"value",@"key1":@"value1"}; 错误:不能这样创建可变字典
NSLog(@"mDic1:%@",mDic1);
//————————————————————————————————可变字典的常用方法—————————————————————————————
//setObject:forKey 给字典添加元素,修改元素
[mDic1 setObject:@"value2" forKey:@"key2"];
NSLog(@"mDic1:%@",mDic1);
// 修改key 对应的元素
[mDic1 setObject:@"kkkkk" forKey:@"key2"];
//removeObjectForKey 移除指定键的元素
[mDic1 removeObjectForKey:@"key"];
NSLog(@"mDic1:%@",mDic1);
// removeAllObjects 移除字典所有的元素
[mDic1 removeAllObjects];
NSLog(@"mDic1:%@",mDic1);
// removeObjectsForKeys 移除一组键对应的元素
NSArray *keys = [mDic1 allKeys];
[mDic1 removeObjectsForKeys:keys];
NSLog(@"mDic1:%@",mDic1);
//setDictionary 将新字典替换旧字典
[mDic1 setDictionary:mDic];
NSLog(@"mDic1 :%@",mDic);
/*===========================================字典的遍历===================================*/
NSMutableDictionary *mDic3 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"abc",@"key",@"etrtr",@"key1", nil];
// 1、普通遍历
NSArray *allkey = [mDic3 allKeys];
for (int i = ; i < mDic3.count; i++) {
NSString *key = [allkey objectAtIndex:i];
NSString *value = [mDic3 objectForKey:key];
NSLog(@"---%@",value);
}
// 2、快速遍历 obj 是字典的key
for (id obj in mDic3) {
NSString *value = [mDic3 objectForKey:obj];
NSLog(@"==%@",value);
}
// 3、block 遍历
[mDic3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@">>%@",key);
NSLog(@">>%@",obj);
}];
本文GitHub地址https://github.com/zhangkiwi/iOS_SN_NSDictionary
iOS-OC-基础-NSDictionary常用方法的更多相关文章
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...
- oc总结 --oc基础语法相关知识
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...
- OC总结 【OC基础语法相关知识】
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- ios+oc面试题
ios+oc面试题 浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...
- OC基础16:复制对象
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.浅复制即是指针赋值,复制对象的修改会影 ...
- OC基础--数据类型与表达式
前言 做iOS开发有3年了,从当初的小白到现在,断断续续看过很多资料,之前也写过一些博文来记录,但是感觉知识点都比较凌乱.所以最近准备抽时间把iOS开发的相关知识进行一个梳理,主要分为OC基础.UI控 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- iOS 面试基础题目
转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...
随机推荐
- oracle学习笔记(一)用户管理
--oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...
- 0301——Notification 通知
注册消息 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(方法) name:@"消息名字&q ...
- iOS_SN_Xcode内存泄露调试
用Xcode进行内存调试有两种方法: 1.静态方法 2.动态方法 静态方法是直接在Xcode的菜单栏中选择product-->analyze 如截图所示. 之后会看到Xcode的编译状态上会有如 ...
- 三个重要的游标sp_cursoropen
請問這三個存諸過程的作用是什么﹖ sp_cursoropen, sp_cursorfetch, sp_cursorclose API 服务器游标实现 SQL Server OLE DB 提供程序. ...
- Git / Bower Errors: Exit Code # 128 & Failed connect
今天第一次使用bower来安装插件,上来就报了这个错. 然后在google上查找,很多人都有做出回答,让执行如下 git config --global url.https://github.com/ ...
- 使用apache的ab对页面进行压力测试
ab是apache自带的一个很好用的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab 我们可以模拟100个并发用户,对一个页面发送1000个请求 ./ab -n1000 -c100 ...
- IOS 文件管理 2
IOS开发-文件管理(二) 五.Plist文件 String方式添加 NSString *path = [NSHomeDirectory( ) stringByAppen ...
- JAVA语言对比C++语言的几个优点和自身的关键特性
之所以写这篇博客不是为了比较JAVA语言和C++语言到底孰优孰劣,而是从语言本身出发进行对比总结程序编码设计上的差别.因水平有限,某些内容可能太过片面,欢迎指正和讨论. JAVA语言在设计上很好地借鉴 ...
- PMBOK 项目管理 九大知识领域和五大流程
PMI Project Management Institute.PMI 是世界上最大的非盈利机构,是项目管理领域的领导者.PMI制定项目管理行业标准,带领项目管理的研究并提供项目管理的培训,证书 ...
- cmake编译(编译目标)x86或x64
if(CMAKE_CL_64) #CMAKE的内建变量,如果是true,就说明编译器的64位的,自然可以编译64bit的程序 set(ADDRESS_MODEL 64) set(NODE_TAR ...