IOS开发-ObjC-NSDictionary
OC中Foundation框架中有字典类,字典分不可变字典(NSDictionary)和可变字典(NSMutableDictionary),它们的使用如下:
不可变字典:
//------------------不可变字典------------------ // 创建字典对象、并打印输出
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"onevalue" forKey:@"firstkey"];
NSLog(@"%@",dic); // 创建字典对象,并打印输出
NSDictionary *dicc = [NSDictionary dictionaryWithObjectsAndKeys:@"onevalue", @"firstkey", @"twovalue", @"secondkey",@"threevalue", @"thirdkey", @"threevalue", @"forthkey",nil];
NSLog(@"%@",dicc); // 输出某个键对应的值对象
NSLog(@"%@",[dicc objectForKey:@"firstkey"]); // 计算字典的元素个数(一个键值对为一个元素)、输出某个键对应的值
NSLog(@"%lu,%@",[dicc count], [dicc objectForKey:@"secondkey"]); // 使用数组存放有相同值的key
NSArray * arrayLastOut = [dicc allKeysForObject:@"threevalue"];
NSLog(@"%@",arrayLastOut);
可变字典:
//------------------可变字典------------------
// 创建一个空的可变字典
NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithCapacity:]; // 创建一个可变字典并赋初值
NSMutableDictionary * mDicc = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"onevalue", @"firstkey", @"twovalue", @"secondkey", @"threevalue", @"thirdkey", @"threevalue", @"forthkey", nil]; // 把一个字典的全部值赋值给另一个字典
[mDic addEntriesFromDictionary:mDicc]; NSLog(@"%@", mDic); // 使用set更新字典中某个key对应的值,如果key存在,则更新value值
[mDic setValue: @"changeonevalue" forKey: @"firstkey"];
NSLog(@"%@", mDic); // 如果key值不存在,则增加一对key-value键值对
[mDic setValue:@"newvalue" forKey:@"fifthkey"];
NSLog(@"%@", mDic); // 完全替换成后面的字典内容
[mDicc setDictionary:dic];
NSLog(@"%@", mDicc); // 删除字典中的内容--删除1个
[mDicc removeObjectForKey:@"firstkey"]; // 删除多个
[mDicc removeObjectsForKeys:@[@"firstkey",@"secondkey"]]; // 删除全部内容
[mDicc removeAllObjects];
NSLog(@"%@", mDicc);
字典遍历:
// 字典遍历
// 字典遍历方法1
for (int x=; x<mDicc.count; x++) {
NSLog(@"%@",[mDicc objectForKey:[[mDicc allKeys] objectAtIndex:x]]);
} // 字典遍历方法2
for (int x=; x<mDicc.count; x++) {
NSLog(@"%@",[[mDicc allValues] objectAtIndex:x]);
} // 字典遍历方法3
for (id key in mDicc) {
NSLog(@"%@",[mDicc objectForKey:key]);
} // 字典遍历方法4
id dicx;
NSEnumerator *dicEnu = [mDicc keyEnumerator];
while (dicx=[dicEnu nextObject]) {
NSLog(@"%@",[mDicc objectForKey:dicx]);
} // 字典遍历方法5
id dicenu;
NSEnumerator * dicEnum = [mDicc objectEnumerator];
while (dicenu=[dicEnum nextObject]) {
NSLog(@"ddd%@",dicenu);
}
IOS开发-ObjC-NSDictionary的更多相关文章
- iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转
		
iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转 1. 字典转Json字符串 // 字典转json字符串方法 -(NSString *)convertToJs ...
 - IOS开发之----NSDictionary,JSON和XML互相转换
		
本文永久地址为 http://www.cnblogs.com/ChenYilong/p/4044521.html,转载请注明出处. -(void)test { //XML文本范例 ...
 - ios开发之--NSDictionary和NSData之间的互转/NSString和NSData之间的互转
		
NSDictionary转NSData,代码如下: +(NSData*)returnDataWith:(NSDictionary*)dict { NSData *data = [NSJSONSeria ...
 - iOS开发系列--打造自己的“美图秀秀”
		
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
 - iOS开发系列--Swift进阶
		
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
 - iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
		
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
 - iOS开发系列--数据存取
		
概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...
 - iOS开发系列--网络开发
		
概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...
 - iOS开发系列--无限循环的图片浏览器
		
--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...
 - IOS开发基础知识碎片-导航
		
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
 
随机推荐
- (转)Windows管道(Pipe)重定向stdout,stderr,stdin
			
参考: http://qiusuoge.com/11496.html http://www.cnblogs.com/BoyXiao/archive/2011/01/01/1923828.html st ...
 - CSS样式覆盖规则
			
有一下问题, 想让下面的border生效 ,#比. 优先级高, #navigator { height: 100%; width: 200; position: absolute; left: 0; ...
 - 硬盘安装Win7、CentOS7双系统
			
待补充 0.软件 Acronis Disk Director:用来对硬盘分区,将磁盘的一部分格式化成Linux可以识别的ext3格式 Ext2Fsd:因为Windows不能识别ext3格式的文件系统, ...
 - usb转串口驱动时会出现“文件的哈希值不在指定的目录”这样的提示
			
一般在安装一些usb转串口驱动时会出现“文件的哈希值不在指定的目录”这样的提示,那么怎么解决呢?知道的别喷我哦,我只是再普及一下,嘿嘿1.鼠标移到右下角,点击“设置”,再点击“更改电脑设置”2.点击最 ...
 - CDOJ UESTC 1220 The Battle of Guandu
			
The 2015 China Collegiate Programming Contest 2015第一届中国大学生程序设计竞赛 F题 本质就是求单源最短路!注意会爆int 对于每一个村庄i,其实就是 ...
 - HTTP Request header
			
HTTP Request header HTTP协议详解 - 小坦克 - 博客园 HTTP Request header 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Pe ...
 - 改变MyEclipse创建JSP时默认的pageEncoding编码
			
如何改变MyEclipse创建JSP时默认的pageEncoding编码 有时我们需要改变MyEclipse创建JSP时默认的pageEncoding编码,因为也许它默认的编码不是我们想要的,比如我们 ...
 - ural1003 Parity
			
Parity Time limit: 2.0 secondMemory limit: 64 MB Now and then you play the following game with your ...
 - PAT (Advanced Level) 1080. Graduate Admission (30)
			
简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...
 - vim 配置快捷以使复制可用
			
"设置快捷以使用xshell的复制 let g_copy_mode = function! CopyToggle() let g:g_copy_mode = set mouse=c set ...