zoukankan      html  css  js  c++  java
  • 黑马程序员--NSArray遍历



    NSArray *array = [NSArray arrayWithObjects: @“1”,@“2”,@“3”,nil];

    //array[i] = [array objectAtIndex:i]


    一.  for循环


    int count = array.count;//减少调用次数

    for( int i=0; i<count; i++){

        NSLog(@"%i-%@", i, array[i]);

    }

    二.  增强for

    for(id obj in array){

        NSLog(@"%@",elm);

    }

    三.  迭代器


    NSEnumerator *enumerator = [array objectEnumerator];

    NSArray *obj = nil;

    while(obj = [enumerator nextObject]){

        NSLog(@"obj=%@",obj);

    }


    四.  Block块遍历


    [array enumeratorObjectsUsingBlock:

    ^(NSArray *obj, NSUInteger idx, BOOL  *stop){

        NSLog(@"%i-%@",idx,elm);

        //若终断循环

        //*stop = YES;

    }];


    比如:


    内容只是重要的代码块,需要实现请将各代码块放在main函数中去运行


    NSArray *arr = @[@1,@2,@3,@4,@6];


    NSMutableArray *array = [NSMutableArray arrayWithArray:arr];

    NSNumber *value = @5;


    //现在要将@5插入,使array内部排序为@1,@2,@3,@4,@5,@6


    用四种方法实现和输出


    第一种:


    for(int i = 0; i<array.count;i++)

    {

        int elm = [array[i] intValue];

        int val = [value intValue];

        if (val < elm) {

            [array insertObject:value atIndex:i];

            break;

        }

    }


    for(int i = 0;i<array.count;i++)

    {

        NSLog(@"%@",array[i]);

    }


    第二种:


    for (id obj in array) {

        unsigned long i = [array indexOfObject:obj];

        if([value intValue]<[array[i] intValue])

        {

            [array insertObject:value atIndex:i];

            break;

        }

    }


    for (id obj in array) {

        NSLog(@"%@",obj);

    }


    第三种:


    NSEnumerator *enumerator = [array objectEnumerator];


    id obj = nil;


    while (obj = [enumerator nextObject]) {

        unsigned long i = [array indexOfObject:obj];

        if([value intValue]<[array[i] intValue])

        {

            [array insertObject:value atIndex:i];

            break;

        }

    }


    NSEnumerator *enumerator1 = [array objectEnumerator];

    obj = nil;

    while (obj = [enumerator1 nextObject]) {

        NSLog(@"%@",obj);

    }


    第四种:


    [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx,BOOL *stop) {

        if([value intValue]<[array[idx] intValue])

        {

            [array insertObject:value atIndex:idx];

            *stop = YES;

        }

    }];


    [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

        NSLog(@"%lu - %@",idx,obj);

    }]; 

  • 相关阅读:
    apache 页面压缩技术mod_deflate安装和配置
    获取指定目录下的所有文件名和路径(包括子目录)
    ThinkPHP框架项目开发专题自动验证
    hd cdnServer 51cdn / ChinaCache / ATS / Apache Traffic Server
    js calendar / wannianli
    OS + Unix Solaris / openSolaris
    project web architecture
    OS + Unix HPUX
    逻辑左移
    桂林游览2
  • 原文地址:https://www.cnblogs.com/frozen1224/p/4242455.html
Copyright © 2011-2022 走看看