NSEnumerationReverse usingBlock:^(id str,NSUInteger index, BOOL* te){ NSLog(@"%@,%d",str,index); }]; 返回NSEnumerator (迭代器) 对象,用来遍历整个数组 使用数组返回一个 NSEnumerator 对象,这个对象类似与一个指针,可以用来遍历 整个数组指针从前向后遍历 - (NSEnumerator *)objectEnumerator ; 示例如下 NSEnumerator *enu = [array objectEnumerator]; id *obj; while (obj = enu.nextObject){ NSLog(@"obj===%@==",obj); } 返回一个NSEnumerator (迭代器)对象,这个对象类似一个指针,可以用来遍历真个数据,所不同的是,这个指针,是从后向前遍历。 - (NSEnumerator *)reverseObjectEnumerator; 获取数组中的子数组 -(NSArray *)subarrayWithRange:(NSRange)range;
[dictionary keyEnumerator]: 将词典的所有KEY储存在NSEnumerator中,NSEnumerator很像Java语言中的迭代器,使用快速枚举可以遍历词典中所有储存KEY值 [dictionary objectEnumerator]: 将词典的所有value储存在NSEnumerator中,用法和上面差不多可用来遍历KEY对应储存的Value值。 使用快速枚举的好处: 枚举相比其它方式更加高效,例如 NSEnumerator. 在 Foundation 框架中的集合类—NSArray, NSDictionary 以及 NSSet—就采用了这个协议,就像 NSEnumerator. 对象来做快速枚举 NSArray *array = [NSArray arrayWithObjects: @"one", @"two", @"three", @"four", nil]; NSEnumerator
< setArr.count;i++){ NSString *obj = setArr[i]; NSLog(@"setContent--%@",obj); } NSEnumerator (不论遍历哪种collection,都可以采用这套相似语法) //NSArray(有序) NSArray *arr = @[@"1",@"2",@"3"]; NSEnumerator objectArr); } //NSDictionary(无序) NSDictionary *dic = @{@"1":@"1",@"2":@"2",@"3":@"3"}; NSEnumerator @",dic[key]); } //NSSet(无序) NSSet *set = [NSSet setWithObjects:@"1",@"2",@"3", nil]; NSEnumerator NSLog(@"str:%@",setStr); } //NSArray(反序) NSArray *arr = @[@"1",@"2",@"3"]; NSEnumerator
[dictionary count]; NSLog(@"词典的数量为: %d",count); //得到词典中所有KEY值 NSEnumerator NSLog(@"遍历KEY的值: %@",object); } //得到词典中所有Value值 NSEnumerator
NSUInteger)count 返回集合成员个数 -(BOOL)containsObject:obj 确定集合是否包含对象 obj -(BOOL)member:obj 确定集合是否包含对象 obj -(NSEnumerator *)objectEnumerator 返回集合中所有对象到一个 NSEnumerator 类型的对象 -(BOOL)isSubsetOfSet:nsset 判断集合是否是NSSet的子集 -(BOOL)
nil - (NSArray <KeyType> *)allKeys //返回词典中所有对象的key - (NSArray <KeyType> *)allValues //返回词典中所有的值对象 - (NSEnumerator <ObjectType> *)keyEnumerator //返回一个可以快速访问词典中所有关键字的 快速枚举器 - (NSEnumerator<ObjectType> *)objectEnumerator { NSLog(@"Allkeys --> %@", [key description]); } //3.4 返回一个枚举器 NSEnumerator
1.颜色去重 NSArray *curColor = nil; NSUInteger tempcount = 0; NSEnumerator *enumerator = [cls if (blue == max) hue = 240 +(red-green)/(max-min)* 60; if (hue < 0) hue = hue + 360; NSEnumerator
M13Generics(ObjectType) *objectEnumerator; //所有键的枚举 @property (nonatomic, readonly) NSEnumerator M13Generics (KeyType) *keyEnumerator; //所有元素的枚举 @property (nonatomic, readonly) NSEnumerator M13Generics(NSDictionary <KeyType, ObjectType> *) *entryEnumerator; //所有值的反向枚举 @property (nonatomic, readonly) NSEnumerator M13Generics (ObjectType) *reverseObjectEnumerator; //所有键的反向枚举 @property (nonatomic, readonly) NSEnumerator M13Generics (KeyType) *reverseKeyEnumerator; //所有元素的反向枚举 @property (nonatomic, readonly) NSEnumerator M13Generics
[manager fileExistsAtPath:folderPath]) return 0; //快速枚举对象 NSEnumerator *childFilesEnumerator
NSLog(@"%@ ",arr);//这个语句会执行 [marray count]次,把每个数组元素取出来 } //3.使用枚举器遍历 NSEnumerator
firstData];//降序 }]; // 这样最后得到的sortedPaths就是我们按创建时间排序后的文件,然后我们就可以根据自己的需求来操作已经排序过的文件了,如删除最先创建的文件等: NSEnumerator
上面已经写了一种数组遍历方式,下面总结了其他的遍历方式,用枚举器(类似Java中的迭代器)和快速枚举(类似PHP中的foreach) (1)枚举器(迭代器)的用法 要通过NSEnumerator 来遍历数组首先得通过-(NSEnumerator *) objectEnumerator来得到枚举器;通过枚举其中的nextObject来获取对象 demo:如下 1 2 3 4 5 6 7 8 //迭代遍历数组 //获取枚举器 NSEnumerator *enumerator = [array objectEnumerator]; //临时变量 id obj; while
iOS 迭代器:NSEnumerator 1、字典中的(有两个方法): - (NSEnumerator<KeyType> *)keyEnumerator;//获取所有key值 - (NSEnumerator <ObjectType> *)objectEnumerator;//获取所有value值 2、数组中的(有两个方法) - (NSEnumerator<ObjectType> *)objectEnumerator ;//正向遍历数组 ——>完全可用 for in 语法代替 - (NSEnumerator<ObjectType> *)reverseObjectEnumerator;//反向遍历数组 主要优点
name :[@"_" stringByAppendingString:name]; [symbolNames addObject:symbolName]; } NSEnumerator
*tail; @property (nonatomic, copy, readonly) NSArray *array; @property (nonatomic, copy, readonly) NSEnumerator @interface RACSequenceEnumerator : NSEnumerator @property (nonatomic, strong) RACSequence *sequence; - (NSEnumerator *)objectEnumerator { RACSequenceEnumerator *enumerator = [[RACSequenceEnumerator NSEnumerator+RACSequenceAdditions @interface NSEnumerator (RACSequenceAdditions) @property (nonatomic , copy, readonly) RACSequence *rac_sequence; @end复制代码 这个Category能把任意一个NSEnumerator转换成RACSequence。
最基本的是 for循环,其次是 NSEnumerator遍历法及快速遍历法,最新,最先进的方式则是"块枚举法"; "块枚举"法,本身就能通过 GCD 来并发执行遍历操作,无须额外编写代码。 而采用其他遍历方式则无法轻易实现这一点; 若提前知道等遍历的 collectioin含有何种对象,则应修改块签名,指出对象的具体类型; NSEnumerator遍历法 NSEnumerator是个抽象基类 其中只定义了两个方法,供子类来实现: (NSArray*)allObjects (id)nextObject 想遍历数组时,则可以这样来写代码: NSArray *anArray = .....; NSEnumerator 并且 NSEnumerator 有多种枚举器供选择,如反向遍历等,使用时可以根据需要选择不同的枚举器; 快速遍历 快速遍历其实就是在基本 for循环的基础上加了个 in关键字: for(id object
componentsSeparatedByString分割字符串成为一个数组 (能分就能合,-componentsJoinedByString) 数组的使用和NSString的使用基本雷同 4.2枚举 NSEnumerator
4_0); //获取数组中最后一个元素 @property (nullable, nonatomic, readonly) ObjectType lastObject; //获取数组的枚举对象 - (NSEnumerator <ObjectType> *)objectEnumerator; //获取数组的逆向枚举对象 - (NSEnumerator<ObjectType> *)reverseObjectEnumerator;
NSArray 枚举器遍历 (1) NSArray 获取枚举器 NSArray 枚举器 NSEnumerator 简介 : -- "objectEnumerator : " 方法 : 返回 NSArray 集合顺序枚举器; -- "reverseObjectEnumerator : " 方法 : 返回 NSArray 集合的逆序枚举器; (2) NSEnumerator 枚举器 NSEnumerator NSEnumerator 示例代码 : -- main.m 代码 : // // main.m // 04.NSArray // // Created by octopus on 15-10 对象; -- "objectEnumerator : " 方法 : 返回 value 集合的 NSEnumerator 对象; -- "enumerateKeysAndObjectsUsingBlock 集合顺序枚举器; -- "reverseObjectEnumerator : " 方法 : 返回 NSArray 集合的逆序枚举器; (2) NSEnumerator 枚举器 NSEnumerator
+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated { NSEnumerator *subviewsEnum = [view.subviews