OC——Foundation—常用的类(3)----NSDictionary

NSDictionary

通过唯一的key找到对应的value,相当于java中的map

常见的创建NSDictionary的方法

//第一种创建方法,字典是不可变的,初始化之后不可添加删除元素
NSDictionary *dict=[NSDictionary dictionaryWithObject:@“v1”forKey:@“k1”];
 //第二种创建方法,最常用
NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:
                               @“v1”,@“k1”,
                               @“v2”,@“k2”,
                               @“v3”,@“k3”,
                               @“v4”,@“k4”,nil];
//第三种创建方法
 NSArray *values=[NSArray arrayWithObjects:@“v1”,@“v2”,@“v3”,@“v4”,nil]; NSArray *keys=[NSArray arrayWithObjects:@“k1”,@“k2”,@“k3”,@“k4”,nil]; NSDictionary *dict=[NSDictionary dictionaryWithObjects:values forKeys:keys]; 


字典使用:

快速遍历:for(NSString *key in dict)

使用迭代器遍历字典:

NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:
                               @“v1”,@“k1”,
                               @“v2”,@“k2”,
                               @“v3”,@“k3”,
                               @“v4”,@“k4”,nil];
//获取迭代器
NSEnumerator *enumerator=[dict keyEnumerator];
id key =nil
while(key=[enumerator nextObject]){
    id value=[dict objectForKey:key];
}

使用block遍历字典:

NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:
                               @“v1”,@“k1”,
                               @“v2”,@“k2”,
                               @“v3”,@“k3”,
                               @“v4”,@“k4”,nil];
//使用block
[dict enumerateKeysAndObjectsUsingBlock:^(id key,id value,BOOL *stop){
      NSLog(@“%@%@“,key,value);
}

NSDictionary的key排序

  • -(NSArray *)keysSortedByValueUsingComparator:(NSComparator)cmptr
  • -(NSArray *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr
  • -(NSArray *)keysSortedByValueUsingSelector:(SEL)comparator

用法参照NSArray的排序

NSMutableDictionary(可变字典)

//创建一个空的字典
NSMutableDictionary *dict=[NSMutableDictionary dictionary];

//创建两个字符串对象
NSString *str1=[NSString stringWithString:@“stu.gx203.1”];
NSString *str2=[NSString stringWithString:@“stu.gx203.2”];

//将字符串对象添加到可变字典中
[dict addObject:str1 forKey:@“k1”];
[dict addObject:str2 forKey:@“k2”];

添加其他字典到当前字典

NSDictionary *otherdict=[NSDictionary dictionaryWithObject:@“str.gx203.3” forKey:@“k3”];

[dict addEntriesFromDictionary:otherdict];

添加删除操作参考NSMutableArray

 

时间: 2024-11-14 12:53:33

OC——Foundation—常用的类(3)----NSDictionary的相关文章

OC——Foundation—常用的类(5)——NSObject和反射、copy语法

反射: OC反射机制是指:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性,这种动态获取信息以及动态调用对象的方法的功能成为OC的反射机制. Class反射 通过类名的字符串形式实例化对象 将类名变成字符串 SEL的反射 通过方法的字符串形式实例化方法 将方法变成字符串 //类名的反射 NSString *str=@“Person”; Class class=NSClassFromString(str); Person *person

OC——Foundation—常用的类(2)----NSArray

NSArray 用来存储对象的有序列表,它是不可变的 不能存储c语言中的基本数据类型,如int.float.enum.struct,也不能存储nil NSArray *array=[NSArray arrayWithObject:@“12345”]; 数组创建之后是不可变的,需要在创建的时候就初始化. 当把一个对象塞进数组时,这个对象的计数器会加1.   NSArray遍历 普通遍历 NSUInteger count = [array count]; for (int i=0;i<count;i

黑马程序员--Foundation框架之--类其他常用的类:NSNumber,NSDate

------IOS培训期待与您交流! ------- Foundation的其他常用的类:NSNumber,NSDate 一.NSNumber 这个类主要是用来封装基本类型的,OC 中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去. 从这一点上我们就可以看出NSNumber是很重要的,后面一定会经常用到. 1.封包和解包 // 创建NSNumber // 封包 NSNumber *intNumber = [NSNumber numberWithI

OC学习篇之---类的定义

之前已经介绍了OC中的一个程序HelloWorld:http://blog.csdn.net/jiangwei0910410003/article/details/41578003,今天我们继续学习OC中类的相关知识. OC和C的最大区别就是具有了面向对象的功能,那么说到面向对象,就不得不说类这个概念了,如果学过Java的话,那么对类和对象的概念就不陌生了,因为Java是非常纯正的面向对象设计语言.关于类和对象的概念,这里就不仔细介绍了,网上有各种解释.我们之间来开一下OC中如何定义一个类,如何

OC Foundation框架—字符串

一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableArray:可变数组 2) NSSet: NSMutableSet: 3) NSDictiorary NSMutableDictiorary 其它: NSDate NSObject 二.NSString和NSMutableString的使用与注意 (一)6种创建字符串的形式 (二)使用注意 (1)字符

(转载)OC学习篇之---类的定义

之前已经介绍了OC中的一个程序HelloWorld,今天我们继续学习OC中类的相关知识. OC和C的最大区别就是具有了面向对象的功能,那么说到面向对象,就不得不说类这个概念了,如果学过Java的话,那么对类和对象的概念就不陌生了,因为Java是非常纯正的面向对象设计语言.关于类和对象的概念,这里就不仔细介绍了,网上有各种解释.我们之间来开一下OC中如何定义一个类,如何实例化出一个对象等. 首先我们新建一个工程,系统会自动创建main.m文件的,这时候,我们右键项目,选择New File.. 然后

OC Foundation & NSString 字符串

一 Foundation 简介 Foundation 框架是苹果公司提供给开发人员,提高效率的的工作库. Foundation中提供了了多类,定义在头文件中.例如NSString类: #import <Foundation/NSSortDescriptor.h> #import <Foundation/NSStream.h> #import <Foundation/NSString.h> #import <Foundation/NSTextCheckingResu

iOS开发常用工具类

iOS开发常用工具类(提高开发的工作效率) 前言 作为一个开发者应该学会去整理收集开发常用的工具类,这些复用的工具可以在项目开发中给你很大程度提高你的工作效率.难道你不想早点完成工作,然后出去撩妹.陪女朋友或者回家陪老婆孩子吗?反正我想早点回家??. 一.常用的宏定义 善于利用宏在开发中过程中会减少很多工作量比如定义开发过程中的常用尺寸,这样在后续开发中不用为了改一个相同尺寸而满世界的去找这个尺寸在哪用到了.宏定义用的很广泛,例如屏幕的宽高,网络请求的baseUrl等等下面是自己整理的一些示例:

OC学习篇之---类目的概念和使用

上一篇文章介绍了OC中的@class关键字的使用http://blog.csdn.net/jiangwei0910410003/article/details/41774747,这一篇我们介绍一下,OC中的一个特有的亮点:类目 首先我们来看一下场景,如果我们现在想对一个类进行功能的扩充,我们该怎么做? 对于面向对象编程的话,首先会想到继承,但是继承有两个问题: 第一个问题:继承的前提是这个类可以被继承,因为在Java中有些类是不允许继承的,定义成final类,同样的OC中也是有不可以继承的类 第