你的位置:首页 > 软件开发 > 操作系统 > IOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)

IOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)

发布时间:2015-07-05 17:00:03
IOS学习(OC语言)知识点整理一、OC中的字典 1)字典:是一个容器对象,元素是以键-值对(key-value)形式存放的,key和value是任意类型的对象,key是唯一的,value可以重复 2)OC中的字典有两种 1、不可变字典 ...

IOS学习(OC语言)知识点整理

一、OC中的字典 1)字典:是一个容器对象,元素是以键-值对(key-value)形式存放的,key和value是任意类型的对象,key是唯一的,value可以重复 2)OC中的字典有两种       1、不可变字典:NSDictionary,初始化后不能修改其内容       2、可变字典:NSMutableDictionary,初始化后可以修改其内容二、NSDictionary 字典的操作1)实例化方法创建字典对象 例如:3)initWithDictionary 用一个字典创建另一个字典对象 例如:4)dictionaryWithObjectsAndKeys 用类方法创建对象 例如:5)快速创建对象@{key1:value1,key2:value2,....} 例如:6)objectForKey 用于根据key取value 例如:7)allKeysForObject 根据value取出对应的所有的key(value可以重复,key不能重复)例如:8)allKeys 用于取出所有的key  例如:10)NSDictionary 遍历方法 1、迭代器法:

1 NSEnumerator *enumerator=[dict1 keyEnumerator];2 id obj;3 //[enumerator nextObject]:如果有key,就返回,否则为nil,自动指向下一个key4 while (obj=[enumerator nextObject]) {5  NSLog(@"%@-->%@",obj,[dict1 objectForKey:obj]);6 }
 2) 创建一个空的字典对象 例如: 1 NSMutableDictionary *dict1=[[NSMutableDictionary alloc]init];  3)setObject…  forKey… 如果key不存在,就添加,如果key存在,就修改 例如:4)addEntriesFromDictionary 将另一个字典的内容全部添加过来 例如:6)removeObjectsForKeys 用于删除多个key及对应的value  例如:7)removeAllObjects 删除字典中所有的元素 例如:8)setDictionary 用另一个字典重新设置该字典的内容 例如:四、OC中的打包与解包1)打包即将一个值类型数据转换为对象类型数据的过程 例如:

1 //将int型的数据封装成对象(打包)2 NSNumber *intNumber=[[NSNumber alloc]initWithInt:100];3 NSNumber *longNumber=[NSNumber numberWithInteger:100];4 NSNumber *charNumber=[[NSNumber alloc]initWithChar:'A'];
3)解包即将一个对象类型转换为值类型的一个过程  例如:

1 //取出对象中的基本数据值(解包)2 NSLog(@"%d",[intNumber intValue]);3 NSLog(@"%ld",[longNumber integerValue]);4 NSLog(@"%c",[charNumber charValue]);
实例代码:

1 NSComparisonResult cmp= [intNumber compare:longNumber];2 //NSNumber可以直接显示数据值,已经重写过description方法3 if(cmp==NSOrderedAscending){4   NSLog(@"%@<%@",intNumber,longNumber);5 }else if (cmp==NSOrderedDescending){6   NSLog(@"%@>%@",intNumber,longNumber);7 }else if (cmp==NSOrderedSame){8   NSLog(@"%@=%@",intNumber,longNumber);9 }
6)将结构体数据封装成对象 。 注:不能将结构体变量存入数组,需要将其封装为NSValue的对象实例代码:

 1 struct mysct 2 { 3   int a; 4   int b; 5 }; 6 struct mysct s1={1,2},s2; 7 NSValue *value1=[[NSValue alloc]initWithBytes:&s1 objCType:@encode(struct mysct)]; 8 NSLog(@"%s,%s",@encode(struct mysct),@encode(int));//结果:{mysct=ii},i 9 NSArray *array1=[[NSArray alloc]initWithObjects:value1, nil];10 //将结构体变量封装的对象存入数组11 NSArray *array1=[[NSArray alloc]initWithObjects:value1, nil];12 NSValue *value2=[array1 firstObject];13 //将value2中的数据取出存入s214 [value2 getValue:&s2];15 NSLog(@"s2:{%d,%d}",s2.a,s2.b);//结果:1,2
五、OC中随机数生成     1、rand 用于生成int类型的随机数 ;rand()实际并不是一个真正的伪随机数发生器,random()会相对好点。     2、random 用于生成long类型的随机数;需要初始化时设置种子 例如:     3、arc4random 用于生成unsigned int 类型的随机数据 例如:1、 NSPoint 用于获取/设置 对象的坐标点 实例代码:

1 NSPoint pt=NSMakePoint(10, 20);2 NSValue *vl1=[NSValue valueWithPoint:pt];3 NSPoint pt2=[vl1 pointValue];4 NSLog(@"Point=(%.0f,%.0f)",pt2.x,pt2.y);//结果:Point=(10,20)


原标题:IOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。