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等,只能把它们转化成对象才可 ...
随机推荐
- elasticsearch高级配置之(一)----分片分布规则设置
cluster.routing.allocation.allow_rebalance 设置根据集群中机器的状态来重新分配分片,可以设置为always, indices_primaries_active ...
- myEclipse JSP 调用 IDL8.2 配置
新安装了Envi5.0 IDL8.2,路径改动了,一些配置也要随之改动.现在总结一下,JSP调用IDL的配置. jar包配置,环境变量配置,dll配置,tomcat路径配置,tomcat运行选项配置, ...
- zencart产品详细页面调用数据库显示tags标签
给商品信息页面添加一些tag关键词标签有利于谷歌的收录,也有利于关键词的SEO,实现这个功能并不难.其实就是给zencart添加一个功能模块, 具体方法是: 1,在mudules目录下面新建一个以 ...
- mysql慢查询问题
[问题现象] 使用sphinx支持倒排索引,但sphinx从mysql查询源数据的时候,查询的记录数才几万条,但查询的速度非常慢,大概要4~5分钟左右 [处理过程] 1)explain 首先怀疑索引没 ...
- C#入门经典第七章,错误调试
调试模式下执行应用程序-------F5或是绿色的运行箭头 非模式下,调试---开始执行不调试(ctrl+F5)
- hql 链接查询
第一部分.连接查询 一.内连接 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值.内连接分三种: 1.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询 ...
- drawRect 进阶
iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动 ...
- 使用python将mysql数据库的数据转换为json数据
由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问M ...
- [转]Firefox拦截12306订票网站的解决办法
解决方法:1.找到firefox选项设置(Ubuntu下的ff的选项在[Edit]-[Preferences]中) 2.点击[Advanced]-[Encryption]-[View Certific ...
- 前端UI
一个非常好的前端UI,值得研究下 http://semantic-ui.com/