zoukankan      html  css  js  c++  java
  • NSArray

    NSArray

      一 oc的数组可以存储不同类型的对象。。java/c/c++ 则不可以。。

        oc只能存储对象 内存空间是连续的。。只保存对象的指针 占得空间也比较小。

      

      二 初始化 

        

    NSArray *array1 =[[ NSArray alloc] initWithObjects:@"1",@"2",@"3",nil];

        

         三  方法

        1 数组的长度 count

            

    int arrayCount = (int)array1.count;

        2 是否包含对象 (BOOL) containsObject:

        3 得到最后一个对象 lastObject

        4 得到第一个对象 firstObject

        5 取出指定的对象  objectAtIndex:

        6 打印元素对应的下表 (元素不存在打印-1)indexOfObject:

     四 数组的遍历

        1  for循环

        2 for in 快速枚举

        3 枚举器(迭代器)

    for(int i =0; i<array1.count.i++){
          
           NSString *str = [str objectAtIndex:i];            
    }
    //如果使用快速枚举,则数组要保持类型一样
    
         for(NSString *str in array1){
    
        
         }
    NSEnumerator *enumerator = [array objectEnumerator];
    id obj = nil;
    while(obj = [enumerator nextObject]){
        NSLog(@"obj=%@",obj);
    }
    #pragma mark 普通遍历
    void arrayFor1(){
        NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
        int count = array.count;
        for(int i=0; i<count; i++){
            id obj = [array objectAtIndex:i];
            NSLog(@"%i-%@",i, obj);
        }
    }
    
    #pragma mark  快速遍历
    void arrayFor2(){
        NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
        int count = array.count;
        int i=0;
        for(id obj in array){
            NSLog(@"%i-%@",i, obj);
            i++;
        }
    }
    
    #pragma mark  利用block遍历
    void arrayFor3(){
        NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
        [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            NSLog(@"%zi->%@",idx, obj);
          //  *stop = YES; //改变外边的Bool,终止遍历
        }];
    }
    #pragma mark 利用迭代器
    void arrayFor4(){
        NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
        NSEnumerator *enumerator = [array objectEnumerator];
        //如果放到遍历之后,则取到空,原因是,遍历完了,就没值了
        NSArray *array2 = [enumerator allObjects];
        NSLog(@"array2:%@", array2);
        
        //获取下一个需要遍历的元素
        id obj = nil;
        while (obj = [enumerator nextObject]) {
            NSLog(@"obj=%@", obj);
        }
  • 相关阅读:
    numpy中linspace用法 (等差数列创建函数)
    Ubuntu环境下 matplotlib 图例中文乱码
    转载: 广义逆矩阵
    matplotlib.pyplot中add_subplot方法参数111的含义
    转载:(论文) 二次指数平滑法中确定初始值的简便方法
    图像处理之 opencv 学习---opencv 中的常用算法
    图像处理之 opencv 学习---矩阵的操作
    编译异常之static和extern---more than one storage class specified
    格式转换至yuv422转 yuv420
    阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_6 自定义类型转换器代码编写
  • 原文地址:https://www.cnblogs.com/cooking/p/4914380.html
Copyright © 2011-2022 走看看