NSDictionary 遍历】的更多相关文章

       NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys: @"1",@"a",                            @"2",@"b", @"3",@"c", @"2",@"d", nil];        //遍历1        //for (i…
iOS学习(OC语言)知识点整理 一.OC中的字典 1)字典:是一个容器对象,元素是以键-值对(key-value)形式存放的,key和value是任意类型的对象,key是唯一的,value可以重复 2)OC中的字典有两种 1.不可变字典:NSDictionary,初始化后不能修改其内容 2.可变字典:NSMutableDictionary,初始化后可以修改其内容 二.NSDictionary 字典的操作 1)实例化方法创建字典对象 例如: NSDictionary *dict1=[[NSDic…
在Cocoa Foundation中NSDictionary和NSMutableDictionary 用于对象有序集合,NSDictionary和NSMutableDictionary 与 NSArray和NSMutableArray 有些不一样,前者可以保存多个不同类型的数据,而后者只能保存同一类型的数据. 1.NSDictionary 创建 NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Supe…
类:NSObject .NSString.NSMutableString.NSNumber.NSValue.NSDate.NSDateFormatter.NSRange.Collections:NSSet.NSArray(Ordered.Copy).NSMutableArray.NSMutableSet.NSDictionary ====================================================================================…
类:NSObject .NSString.NSMutableString.NSNumber.NSValue.NSDate.NSDateFormatter.NSRange.Collections:NSSet.NSArray(Ordered.Copy).NSMutableArray.NSMutableSet.NSDictionary ====================================================================================…
1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth } NSDictionary: NSDictionary *dic = /*…*/ NSArray *keys = [dic allKeys]; ; i<keys.count; i++) { id key = keys[i]; id value = dic[key]; //do sth } NSSet…
做app的时候,总免不了要多次遍历数组或者字典.究竟哪种遍历方式比较快呢?我做了如下测试:首先定义测试用宏: ? 1 2 3 4 5 6 7 8 9 #define MULogTimeintervalBegin(INFO) NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];\ NSTimeInterval duration = 0;\ NSLog(@"MULogTimeintervalBegin:%@", IN…
字典是以键值对的形式来存储数据 key value 1 NSDictionary 字典 1.1 创建字典,不可变的 NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaozhe",@"name", nil]; NSLog(@"dic %@",dic); 2016-08-14 14:44:17.460 07-字典类[2325:547877] dic { name…
NSArray *array = [NSArray arrayWithObjects:@"zhangsan",@"lisi",@"wangwu",@"zhaoda", nil];        //如何把  数组元素 一一取出?        //方法一:for循环        for (int i = 0; i < [array count]; i++) {            NSString *obj = [a…
一,当枚举一个数组的时候: 1.使用 for (id object in array) 如果是顺序枚举 2.使用 for (id object in [arrary reverseObjectEnumerator]) 如果是倒叙枚举 3.使用 for (NSInteger i = 0; i < count; i++) 如果你需要知道它的索引值,或者是要改变数组 4.尝试 [array enumerateObjectsWithOptions:usingBlock:] 如果你的代码受益于并行执行 N…
做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便.在Objective-C语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像Java与C 只能保存声明的相同类型的数据,它的关键字为NSDictionary与NSMutableDictionary.阅读过我之前文章的朋友应该从关键字的 结构就可以看出这两个的区别.很明显前者为不可变词典,或者为可变词…
在上篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property Name相同,然后通过运行时来生成和执行Setter方法给Model类的属性赋值. 通过Runtime来给Model类属性赋值的好处是多多的,它便于代码的后期维护,并且提高了开发效率.当你拿到解析后的字典时你不用一个一个的通过key去把字典的值赋值给相应的Model类的属性,本篇博客中会给出如何去遍历Mod…
Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]initWithString:@“123”]; NSString * string3 = [NSString stringWithString:@“123”]; //格式化方法创建   存放地址是堆区 NSString * string2 = [NSString alloc]initWithFormat:@…
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准确性),还需要了解其中所隐藏的算法知识. 在项目当中使用集合类几乎是不可避免的,集合类的使用场景其实可以进行抽象的归类.大多数时候我们需要将若干个对象(object)暂时保存起来,以备后续的业务逻辑进行操作,「保存和操作」,或者说「存与取」,对应到计算机世界的术语就是读和写.最初保存的时候我们Ins…
前段时间与某公司的技术交流,被问到一个问题,如何删除NSDictionary中的NSNull.当时在纸上写,以前太依赖Xcode编译器了,以至于方法名都写不全,最终也没写出来,我想我肯定被鄙视的体无完肤. 最近有机会实现了一下.先来递归实现方案: // 删除NSArray中的NSNull - (NSMutableArray *)removeNullFromArray:(NSArray *)arr { NSMutableArray *marr = [NSMutableArray array]; f…
字典NSDictionary一般的遍历方法都是: NSArray* arr = [yourdictonary allKeys]; for(NSString* str in arr) { NSLog("%@", [yourdictonary objectForKey:str]); } 但是如果就这样遍历的话,所打印出来的结果是不按照你添加的顺序打印出来的. 很简单,只要先将arr进行排序,再将字典遍历打印出来: NSArray* arr = [yourdictonary allKeys]…
今天在修改某项需求的时候,需要在遍历的时候将匹配项移除掉,采用的时forin的方式遍历,然后运行的时候却crash掉了 for (NSString*str in self.btnArray) { if ([imageName isEqualToString:str]) { [self.btnArray removeObject:str]; } } 于是我换了常规的方法来遍历数组,同样的也是在匹配的时候将匹配项移除掉,然后运行,没有crash,能完美处理 ; i < self.btnArray.c…
NSDictionary 不可变的字典 创建字典的方法 // 创建字典的方式 NSDictionary *dy = [NSDictionary dictionaryWithObject:@"a"forKey:@"b"]; NSDictionary *dy1 = [NSDictionary dictionaryWithObjectsAndKeys:@"a",@"b",@"c",@"d" ,…
#pragma mark ------------for循环遍历集合中的元素------ //创建一个数组,包含5个字符串对象,倒序取出数组中的所有元素,并存储到另一可变数组中 NSArray *array = @[@"1", @"2", @"3", @"4", @"5"]; NSMutableArray *marray = [NSMutableArray arrayWithCapacity:0]; for…
/*_______________不可变字(NSDictionary)____________*/          //1.字典的创建     //值(value)     NSArray *array1 = @[@"zhangsan",@"zhangfei",@"zhangchaoyang"]; //zhang     NSArray *array2 = @[@"lisi",@"lining",@&qu…
NSDictionary和NSMutableDictionary:通过key和value进行对应,进行存储元素,能够方便提取所需的元素.key是不能够重复出现,但是value能够重复出现.NSDictionary:不可变词典,无序,能够通过key取出对应的value.创建方法:1.创建一个字典,并存储一个键值对NSDictionary *d = [NSDictionary dictionaryWithObject:@"beijing" forKey:@"name"]…
链接 遍历NSArray 正向遍历 for (id object in array) 反向遍历 for (id object in [array reverseObjectEnumerator]) 如果在遍历中修改 先计算出array的count,然后使用for循环.在for循环中记录需要修改的index,然后修改. NSUInteger count = [array count]; for (NSUInteger i = 0; i < count; i++) { id object = arr…
********************************************* NSDictionary ********************************************* // 字典的概念: //     键值对的概念: //    查字典时:  用一个键,得到一个值 字典的构造方法: NSDictionary * dict1 = [[NSDictionary alloc]initWithObjectsAndKeys:@"one",@"1…
========================== 字典 ========================== NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"One", @"1", @"Two", @"2", @"Three", @"3", @"One",  @"4…
基础知识 1.字典不允许相同的key,但允许有相同的value. 2,字典是无序的,字典不能排序. 3.字典里的内容是成对存在的,不会出现单数. 4.快速创建的方式只适合不可变字典. 不可变字典 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /***************************必需要掌握的知识********************…
NSDictionary    1.什么是字典        字典是也是一种集合结构,功能与我们现实中的字典工具一样    2.字典的元素是什么        任意类型的对象地址构成键值对    3.什么是键值对        键值对是由key和value构成必须一一对应        键值对中的key必须保证是唯一的        4.字典的存储方式       字典是一种无序保存的集合    5.如何查找值        根据键值对中的key找到相应的值===================…
.不可变词典NSDictionary 字典初始化 NSNumber *numObj = [NSNumber numberWithInt:]; 以一个元素初始化 NSDictionary *dic = [NSDictionary dictionaryWithObject:numObj forKey:@"key"]; 初始化两个元素 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:numObj, @"v…
1.集合遍历 1> 遍历 集合(Collection):OC中提供的容器类:数组,字典,集合. 遍历:对集合中元素依次取出的过称叫做遍历. 三种方式:① for循环遍历: ② NSEnumerator遍历: ③ for...in遍历 2> for循环遍历 ① 数组遍历 原理:通过for循环的循环变量用作数组元素下标来获取不同下标的元素. 循环次数就是数组元素的个数. // 数组 ; i < arr.count; i++) { NSLog(@"%@", arr[i]);…
项目中有个文件管理系统,在做本地文件管理操作的时候,遇到了遍历本地文件的问题 遍历到的文件有些不需要显示,而且需要得到文件的相关属性,在此总结下. //查找需要遍历文件夹的目录 NSString *kDocumentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; NSFileManager *fm = [NSFileManager defaul…
1. ForLoop, For - in, enumerateObjects这个三个方法的区别: 遍历一个数组用For-in最快. 通过Value查询index的时候, 面对大量的数组推荐使用 enumerateObjectsWithOptions的并行方法. 遍历字典类型的时候, enumerateKeysAndObjectsUsingBlock效率最高 1.1遍历数组 NSMutableArray *test = [NSMutableArray array]; ; i < ; i ++) {…