• iOS 开发--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] Three
    2014-10-13 20:17:48.794 EnumNSMutableArray[6403:303] Tow
    2014-10-13 20:17:48.794 EnumNSMutableArray[6403:303] One
    2014-10-13 20:17:48.795 EnumNSMutableArray[6403:303] (
    )
    Program ended with exit code: 0
  • 相关阅读:
    [方法] 如何做产品功能设计
    js如何去除一个数组中与另一个数组中的值相同的元素
    js 导出Excel2
    js 导出Excel
    CSS3动画
    没有欲望是一种什么样的感觉
    L9-DOM高级应用
    L8-DOM操作应用
    L7-DOM基础
    L6-js定时器的应用
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/5245331.html
Copyright © 2020-2023  润新知