NSDictionary 使用(六)
来源:互联网 发布:java闭包是什么 编辑:程序博客网 时间:2024/04/28 13:23
NSDictionary 使用如下:
#import "MS_NSDictionary.h"@implementation MS_NSDictionary@synthesize _nsDictionary;-(void)showDictionary{ _nsDictionary = [[NSDictionary alloc] init]; //NSDictionary 创建 NSArray *arrayValues = [[NSArray alloc] initWithObjects:@"A",@"B",@"C",@"C", nil]; NSArray *arrayKeys = [[NSArray alloc] initWithObjects:@"a",@"b",@"c",@"g", nil]; NSDictionary *dictionary1 = [[NSDictionary alloc] initWithObjects:arrayValues forKeys:arrayKeys]; /* 现在总结他们2者的区别就是: 1, setObject:forkey:中value是不能够为nil的,不然会报错。 setValue:forKey:中value能够为nil,但是当value为nil的时候,会自动调用removeObject:forKey方法 2, setValue:forKey:中key的参数只能够是NSString类型,而setObject:forKey:的可以是任何类型 3,key值不能存在重复,否则Dictionary创建时会把重复对象删除掉 注意:setObject:forKey:对象不能存放nil要与下面的这种情况区分: 1, [imageDictionarysetObject:[NSNullnull] forKey:indexNumber]; [NSNull null]表示的是一个空对象,并不是nil,注意这点 2, setObject:forKey:中Key是NSNumber对象的时候,如下: [imageDictionarysetObject:obj forKey:[NSNumber numberWithInt:10]]; */ NSArray *array2 = [dictionary1 objectForKey:@"b"]; NSArray *array3 = [dictionary1 valueForKey:@"b"]; NSLog(@"NSDictionary1 objectForKey:%@ 地址:%p",array2,&array2); NSLog(@"NSDictionary1 valueForKey:%@ 地址:%p",array3,&array3); //获得key值的方法 NSArray *keyArray = [dictionary1 allKeys]; for(id item in keyArray) { NSLog(@"all Keys :%@",item); } NSArray *keyArray2 = [dictionary1 allKeysForObject:@"C"]; for(id item in keyArray2) { NSLog(@"all Keys For Object: %@",item); } //获得value值的方法 NSArray *valueArray = [dictionary1 allValues]; for(id item in valueArray) { NSLog(@"All Values:%@",item); } NSEnumerator *enumerator = [dictionary1 objectEnumerator]; for(id item in enumerator) { NSLog(@"All Enumerator:%@",item); } //NSDictionary Block块遍历 [dictionary1 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"Block key=%@,obj=%@,stop=%i",key,obj,*stop); }]; //NSDictionary key 值排序 NSArray *keySorteds = [dictionary1 keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2) { if(obj1 > obj2) { return NSOrderedDescending; } else if(obj1 < obj2) { return NSOrderedAscending; } return NSOrderedSame; }]; for(id item in keySorteds) { NSLog(@"key Sorted %@",item); } }@end
0 0
- NSDictionary 使用(六)
- 重要经验六 NSDictionary排序
- NSDictionary类使用
- NSDictionary类使用
- NSDictionary类使用
- NSDictionary(字典)类使用
- 转---NSDictionary类使用
- NSArray与NSDictionary使用
- NSDictionary类使用
- NSDictionary 使用总结
- NSDictionary使用小结
- [iphone]NSDictionary类使用
- NSDictionary简单使用
- NSDictionary类使用
- NSDictionary类使用
- NSDictionary使用小结
- /* ios */NSdictionary 的使用
- 字典NSDictionary 使用注意
- 项目过程
- c语言猜数字小游戏
- Xml文档添加节点和属性
- bat脚本自动备份代码,并压缩
- pthread_mutex_init做了什么呢?
- NSDictionary 使用(六)
- android intent 传递list或者对象
- cocos2d-x lua 中使用protobuf并对http进行处理
- 控制流结构
- Android在新进程中启动 Service 的流程原理分析
- gvim linux ubuntu nautilus 右键菜单插件介绍
- Spring属性占位符PropertyPlaceholderConfigurer的使用 ${}
- 【转】C#解决MDI窗体闪屏的方法
- cocos2d 中 scene(), create(), init() 调用关系