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的更多相关文章

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

    iOS开发--字典(NSDictionary)和JSON字符串(NSString)之间互转 1. 字典转Json字符串 // 字典转json字符串方法 -(NSString *)convertToJs ...

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

    本文永久地址为 http://www.cnblogs.com/ChenYilong/p/4044521.html,转载请注明出处.     -(void)test {     //XML文本范例   ...

  3. ios开发之--NSDictionary和NSData之间的互转/NSString和NSData之间的互转

    NSDictionary转NSData,代码如下: +(NSData*)returnDataWith:(NSDictionary*)dict { NSData *data = [NSJSONSeria ...

  4. iOS开发系列--打造自己的“美图秀秀”

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  5. iOS开发系列--Swift进阶

    概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...

  6. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总

    --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...

  7. iOS开发系列--数据存取

    概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...

  8. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  9. iOS开发系列--无限循环的图片浏览器

    --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...

  10. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

随机推荐

  1. Python基础学习3---数据结构

    数据结构 数据结构基本上就是---他们是可以处理数据的结构或者说他们是用来存储一组相关数据的. 在python中有三种内建的数据结构-----列表.元组和字典 列表(list) 列表就像是我们要去超市 ...

  2. Extjs 4.1 struts2.3 返回json 初试

    之前曾经使用过3.x版本的extjs,当时可以结合struts实现各种基本的增删查改.但是4.1版本中增加了一些属性,出现了一些新的使用方法,导致错误不断,有的时候调用到相应的action却返回不了值 ...

  3. .Net多线程编程—Parallel LINQ、线程池

    Parallel LINQ 1 System.Linq.ParallelEnumerable 重要方法概览: 1)public static ParallelQuery<TSource> ...

  4. HBase集群安装

    1.HBase的机群搭建过程(在原来的hadoop0上的HBase伪分布基础上进行搭建)1.1 集群结构,主节点(hmaster)是hadoop0,从节点(region server)是hadoop1 ...

  5. English--Computer System

    A: Hey, Bill, Can you tell what's wrong with my computer? I can't move the mouse, I can's user the k ...

  6. HTTPS与SSL

    ---------------------------------------------------------------------------------------------------- ...

  7. 简单的js实现网页时钟

    js实现时钟. <div id="clock"></div> <script type="text/javascript"> ...

  8. android脚步---自动完成文本框

    自动完成文本框AutoCompleteTextView,当用户输入一定字符时,自动完成文本框会显示一个下拉菜单,供用户选择,设置一个Adapter,该Adapter中封装了AutoCompleteTe ...

  9. Eclipse中常用的操作单词

    Existing Project into Workspace 现有的工程引入工作空间(加载工程)File 文件New 新建Project 工程Folder 文件夹Import 引入(加载&导 ...

  10. ural1316 Electronic Auction

    Electronic Auction Time limit: 0.5 secondMemory limit: 64 MB There is a deficit in cast-iron pigs in ...