首页 > 代码库 > NSMutableArray使用枚举方法
NSMutableArray使用枚举方法
可变数组也可以使用枚举方法, 我们在这里提供了两种枚举方法, 一个是正序枚举, 一个是倒序枚举, 在正序枚举中, 元素的个数和顺序都是不可以修改的, 但是在倒序枚举中却可以修改, 这有些耐人寻味.
涉及的方法:
objectEnumerator: 正序枚举方法.
reverseObjectEnumerator:倒序枚举方法.
下面我们来看看例子:
//使用了枚举法的可变数组#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"One", @"Tow", @"Three", nil]; //objectEnumetator是一个正序枚举法. //在使用正序枚举法的时候, 元素个数和元素顺序不允许修改.// NSEnumerator *enumerator = [array objectEnumerator];// NSString *str;// int i = 0;// while (str = [enumerator nextObject]){// [array removeLastObject];// NSLog(@"%d", i);// }// //reverseObjectEnumerator是一个逆序的枚举法. //在逆序枚举法, 元素的个数和元素的顺序允许修改. //PS:在逆序枚举法使用任何犯法去改变元素的个数或元素顺序都是可行的. NSEnumerator *enumerator = [array reverseObjectEnumerator]; NSString *str; while (str = [enumerator nextObject]) { [array removeLastObject]; NSLog(@"%@", str); } //因为这里循环了3次, 每一次都会删除一个元素, 这样子就会导致输出来的结果是空的. //2014-10-12 12:24:20.242 EnumNSMutableArray[881:303] () NSLog(@"%@", array); [array release]; } return 0;}
输出的结果:
2014-10-13 20:17:48.793 EnumNSMutableArray[6403:303] Three2014-10-13 20:17:48.794 EnumNSMutableArray[6403:303] Tow2014-10-13 20:17:48.794 EnumNSMutableArray[6403:303] One2014-10-13 20:17:48.795 EnumNSMutableArray[6403:303] ()Program ended with exit code: 0
NSMutableArray使用枚举方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。