• 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
  • 相关阅读:
    JavaWeb chapter 8 过滤器
    JavaWeb Chapter 7 监听器
    JavaWeb chapter6 对象作用域
    JavaWeb chapeter 5 Web应用程序状态管理
    JavaWeb chapter 4 Servlet处理HTTP请求
    JavaWeb chapter3 Servlet处理HTTP响应
    JavaWeb chapter 2 Servlet
    蒙版
    CSS样式,雪碧,图片替换,渐变小析
    本地存储之简单存储
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4022987.html
Copyright © 2020-2023  润新知