IOS开发-ObjC-NSDictionary

OC中Foundation框架中有字典类,字典分不可变字典(NSDictionary)和可变字典(NSMutableDictionary),它们的使用如下:

不可变字典:

 1 //------------------不可变字典------------------
 2
 3 //    创建字典对象、并打印输出
 4     NSDictionary *dic = [NSDictionary dictionaryWithObject:@"onevalue" forKey:@"firstkey"];
 5     NSLog(@"%@",dic);
 6
 7 //    创建字典对象,并打印输出
 8     NSDictionary *dicc = [NSDictionary dictionaryWithObjectsAndKeys:@"onevalue",  @"firstkey", @"twovalue", @"secondkey",@"threevalue", @"thirdkey",  @"threevalue", @"forthkey",nil];
 9     NSLog(@"%@",dicc);
10
11 //    输出某个键对应的值对象
12     NSLog(@"%@",[dicc objectForKey:@"firstkey"]);
13
14 //    计算字典的元素个数(一个键值对为一个元素)、输出某个键对应的值
15     NSLog(@"%lu,%@",[dicc count], [dicc objectForKey:@"secondkey"]);
16
17
18 //    使用数组存放有相同值的key
19     NSArray * arrayLastOut = [dicc allKeysForObject:@"threevalue"];
20     NSLog(@"%@",arrayLastOut);

可变字典:

 1 //------------------可变字典------------------
 2 //    创建一个空的可变字典
 3     NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithCapacity:10];
 4
 5 //    创建一个可变字典并赋初值
 6     NSMutableDictionary * mDicc = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"onevalue", @"firstkey", @"twovalue", @"secondkey", @"threevalue", @"thirdkey", @"threevalue", @"forthkey", nil];
 7
 8 //    把一个字典的全部值赋值给另一个字典
 9     [mDic addEntriesFromDictionary:mDicc];
10
11     NSLog(@"%@", mDic);
12
13 //    使用set更新字典中某个key对应的值,如果key存在,则更新value值
14     [mDic setValue: @"changeonevalue" forKey: @"firstkey"];
15     NSLog(@"%@", mDic);
16
17 //    如果key值不存在,则增加一对key-value键值对
18     [mDic setValue:@"newvalue" forKey:@"fifthkey"];
19     NSLog(@"%@", mDic);
20
21 //    完全替换成后面的字典内容
22     [mDicc setDictionary:dic];
23     NSLog(@"%@", mDicc);
24
25
26 //    删除字典中的内容--删除1个
27     [mDicc removeObjectForKey:@"firstkey"];
28
29 //    删除多个
30     [mDicc removeObjectsForKeys:@[@"firstkey",@"secondkey"]];
31
32 //    删除全部内容
33     [mDicc removeAllObjects];
34     NSLog(@"%@", mDicc);

字典遍历:

 1 //    字典遍历
 2 //    字典遍历方法1
 3     for (int x=0; x<mDicc.count; x++) {
 4         NSLog(@"%@",[mDicc objectForKey:[[mDicc allKeys] objectAtIndex:x]]);
 5     }
 6
 7 //    字典遍历方法2
 8     for (int x=0; x<mDicc.count; x++) {
 9         NSLog(@"%@",[[mDicc allValues] objectAtIndex:x]);
10     }
11
12 //    字典遍历方法3
13     for (id key in mDicc) {
14         NSLog(@"%@",[mDicc objectForKey:key]);
15     }
16
17 //    字典遍历方法4
18     id dicx;
19     NSEnumerator *dicEnu = [mDicc keyEnumerator];
20     while (dicx=[dicEnu nextObject]) {
21         NSLog(@"%@",[mDicc objectForKey:dicx]);
22     }
23
24 //    字典遍历方法5
25     id dicenu;
26     NSEnumerator * dicEnum = [mDicc objectEnumerator];
27     while (dicenu=[dicEnum nextObject]) {
28         NSLog(@"ddd%@",dicenu);
29     }
时间: 2024-08-05 12:38:12

IOS开发-ObjC-NSDictionary的相关文章

IOS开发之----NSDictionary,JSON和XML互相转换

本文永久地址为 http://www.cnblogs.com/ChenYilong/p/4044521.html,转载请注明出处. ? ? -(void)test { ? ? //XML文本范例 ? ? NSString *testXMLString = @"Cake0.55RegularChocolateBlueberryNoneGlazedSugar"; ?? ? ? ? NSLog(@"xml string[\n%@\n]", testXMLString);

iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转

1. 字典转Json字符串 + (NSString*)convertToJSONData:(id)infoDict { NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:infoDict options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated stri

iOS开发——实用篇&amp;KVO与KVC详解

KVO与KVC详解 由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby.Python的动态特性,例如动态类型.动态加载.动态绑定等.今天我们着重介绍ObjC中的键值编码(KVC).键值监听(KVO)特性: 键值编码KVC 键值监听KVO 键值编码KVC 我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对象.其实由于ObjC的语言特性,你根部不必进行任何操作就可以进行属性的动态读写,这种方式就是Key Valu

Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)

Qt/C++开发人员眼中的Obj-C 对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这篇博客的内容,我将描写叙述诸多我所学到的东西.这将很多其它的是大脑转存而不是单一的教程 ,所以我仍然希望这将对你非常有帮助,我将首先写编程语言的差异,然后再写关于类库的差异 1.Objective C vs C vs C++ 类似于C++,Obj-c是C语言的一个超集(这不是100%正确的,可是一个足够好的语

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

**iOS开发系列--IOS程序开发概览

http://www.cnblogs.com/kenshincui/p/3890880.html 概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运行的原理

iOS开发网络数据之AFNetworking使用

iOS开发网络数据之AFNetworking使用 如何选择AFNetworking版本 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetworking 2.0或者之后的版本需要xcode5.0版本并且只能为IOS6或更高的手机系统上运行,如果开发MAC程序,那么2.0版本只能在MAC OS X 10.8或者更高的版本上运行. AFNetworking 2.0的下载地址https://github.com/AFNetworking/AF

iOS开发系列--绘图与滤镜全面解析

概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图形绘图框架进行介绍:Quartz 2D绘制2D图形和Core Image中强大的滤镜功能. Quartz 2D 基本图形绘制 视图刷新 其他图形上下文 Core Image Quartz 2D 在iOS中常用的绘图框架就是Quartz 2D,Quartz 2D是Core Graphics框架的一部分,是一个强大的二维图像绘制引擎.Quartz 2D在UI

iOS开发 非常全的三方库、插件、大牛博客等等

UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl- XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS开发系列--数据存取

概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档.plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录.当然,文件存储并不作为本文的重点内容.本文重点还是说数据库存储,做过数据库开发的朋友应该知道,可以通过SQL直接访问数据库,也可以