zoukankan      html  css  js  c++  java
  • OC中数组的使用方法

    #import <Foundation/Foundation.h>

    int main(int argc, const char * argv[])
    {
        
    // 创建数组
        
    NSArray *arr1 = nil;
    //    NSLog(@"%p", arr1);
        
    NSObject *obj = [NSObject new];
        arr1 = [
    NSArray arrayWithObjects:@"One"@"Two"@"Three", obj, nil];//结束标识,相当于C语言的“”
    //    NSLog(@"%p", arr1);
        
    NSLog(@"arr1: %@", arr1);
        
        
    // 推荐以下的新语法
        
    NSString *str = @"Hello";
        
    NSArray *arr2 = @[@"zhangsan"@"lisi"@"wangwu"@"zhaoliu" ,@"tianqi", str];//这样的方法自己主动在后面加入了nil
        
    NSLog(@"arr2: %@", arr2);
        
        
    // 訪问数组成员 objectAtIndex
    //    NSObject *tmpObj = [arr1 objectAtIndex:3];
        
    id tmpObj = [arr1 objectAtIndex:3];
        
    NSLog(@"tmpObj: %@", tmpObj);
        
        
    // 推荐使用以下的新语法
        tmpObj = arr2[
    2];
        
    NSLog(@"arr2[2]: %@", tmpObj);
        
        
    // 可变数组
        
    NSMutableArray *firstArr = [NSMutableArray arrayWithCapacity:30];
        
    // 加入
        [firstArr 
    addObject:@"One"];
        [firstArr 
    addObject:@"Two"];
        [firstArr 
    addObject:@"Three"];
        [firstArr 
    addObject:@"Four"];
        [firstArr 
    addObject:@"Five"];
        
        
    NSLog(@"The Mutable Array: %@", firstArr);
        
        
    NSMutableArray *secArr = [NSMutableArray arrayWithArray:arr2];
        
    NSLog(@"secArr: %@", secArr);
        
        
    // 删除
        [secArr 
    removeObject:@"tianqi"];
        
    NSLog(@"==secArr: %@", secArr);
        [secArr 
    removeObjectAtIndex:2];
        
    NSLog(@"===secArr: %@", secArr);
        
        
    // 插入
        [secArr 
    insertObject:@"wangwu" atIndex:2];//id 是对象  index 是位置
        
    NSLog(@"after insert: %@", secArr);
        
        
    // 替换
        
    NSObject *someObj = [NSObject new];
        [secArr 
    replaceObjectAtIndex:4 withObject:someObj];
        
    NSLog(@"after replace: %@", secArr);

        
        
    // C语言遍历数组
        
    NSUInteger number = [secArr count];
        
    for (int i = 0; i < number; i++) {
            
    id obj = secArr[i];
            
    NSLog(@"%@", obj);
        }
        
        
        
    // 通过枚举器来遍历数组(正着遍历)
        
    NSEnumerator *enum1 = [secArr objectEnumerator];
        
    id obj1;
        
    NSLog(@"*************************");
        
    while (obj1 = [enum1 nextObject]) {
            
    NSLog(@"obj1: %@", obj1);
        }
        
        // 通过枚举器来遍历数组(倒着遍历)   
        NSEnumerator *enum2 = [secArr reverseObjectEnumerator];
        
    while (obj1 = [enum2 nextObject]) {
            
    NSLog(@"reverse: %@", obj1);
        }
        
        
    NSLog(@"============================");
        
    // 高速枚举
        
    for (id obj in secArr) {
            
    NSLog(@"Fast Enumeration: %@", obj);
        }
        
        
        
    return 0;
    }
  • 相关阅读:
    Maven的声明周期(Lifecycle )和命令(Phase)
    Java并发之线程异常捕获
    Java并发之需要了解但不能太依赖的东东
    ejs使用
    node.js BootStrap安装
    div+css关于overflow 动态滚动效果
    myBatis 参数配置
    jQuery Ajax请求提交 后台getParameter接收不到数据
    mysql+mybatis 插入可递增字段库表操作
    CSS浮动讲解好文章推荐
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6731619.html
Copyright © 2011-2022 走看看