zoukankan      html  css  js  c++  java
  • iOS不可变数组的所有操作

    #pragma mark 创建数组

        //1.通过对象方法创建数组

        NSArray * array = [[NSArray alloc]initWithObjects:@"One",@"Two",@"Three",@"Four",@"Five", nil];

           // NSLog(@"%@",array);

          //nil表示空,本质是0,如果是基础数据类型指针用NULL表,对象指向为空一般用nil表示 类对象为空用Nil;

          //  Class-->类类型

          //   SEL --> 选择器

        //通过类方法创建数组

        NSArray * array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

            

        //从Xcode4.6以后数允许用下述方法创建对象

        //NSNumber @()快捷转换基本数组类型到NSNumber对象

        //有些公司不允许使用,为保持一致推荐使用对象方法或类方法创建的数组

        Dog * dog = [[Dog alloc]init];

        NSArray * array3 = @[@"One",@"Two",@"Three",@"Four",@"Five",dog];

           //id-->完成指针-->接收任何数据类型的对象

          //数组本身是一个对象

          //数组的元素如@"One",@"Two",@"Three",@"Four",@"Five"等都是任意类型对象,不仅限于字符串

           //创建数组对象时传参,传入的是对象的地址

           //数组中只能存储兑现搞得地址,而非存储对象的本体

           //同一个对象可以存放发两个数组中,仍然是同一个对象.

          //在一个数组中修改了对象,在另一个数组中读取对象,会发现也被修改了

          //数组可以存数组

            

           //其实%@可以打印任何对象,只要对对象重写description放来

            NSLog(@"%@",array3);

    #pragma mark 数组成员的个数

        NSUInteger num = [array count];

            NSLog(@"%lu",num);

    #pragma mark 数组的成员

        //0~n-1

        //错误信息: index 5 beyond bounds [0 .. 4]'数组越界

        NSString * str  = [array objectAtIndex:3];

            NSLog(@"%@",str);

        //Xcode4.6 取数组成员

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

            

    #pragma mark 获取数组某元素在数组中的位置

       NSUInteger  index = [array1 indexOfObject:@"1"];

            NSLog(@"%lu",index);

    #pragma mark 判断数组是否包含某个元素

            

        BOOL  tag  =  [array  containsObject:@"Five"];

            NSLog(@"%d",tag);

            

    #pragma mark 获取第一个元素/最后一个元素

        NSString * str2 =[array1 firstObject];

        NSString * str3 = [array1 lastObject];

            NSLog(@"%@ %@",str2 , str3);

            

    #pragma mark 将数组的元素进行拼接

         // 只对字符串对象操作

        NSString * str4 = [array componentsJoinedByString:@" "];

            NSLog(@"%@",str4);

            

    #pragma mark 将字符串进行拆分

       NSString * str5 = @"YES,I am a so bad man";

       //拆分字符串

      NSArray * array4  = [str5 componentsSeparatedByString:@" "];

            NSLog(@"%@",array4);

        //拆分字符串,生成一堆新的子串,原字符串不变,该方法创建一个数组,将每个子串添加到当前数组中.

    //    NSCharacterSet * set = [NSCharacterSet characterSetWithCharactersInString:@", "];

        NSArray * array5 = [str5 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];

        //set是集合

        //[NSCharacterSet characterSetWithCharactersInString:@", "]这个方法创建一个集合的对象,返回对象地址,字符集合中的字符,来自字符串的@", "

            NSLog(@"%@",array5);

    #pragma mark 数组元素的混杂

            Dog * dog1 = [[Dog alloc]init];

            Cat * cat1 = [[Cat alloc]init];

            Dog * dog2 = [[Dog alloc]init];

            Cat * cat2 = [[Cat alloc]init];

            Dog * dog3 = [[Dog alloc]init];

           

        NSArray * array6 = @[dog1,cat1,dog2,dog3,cat2];

            //判断对象属于某个类

        //-(BOOL)isKindOfClass:(Class)class;

         

            for (id obj in array6) {

                if([obj isKindOfClass:[Dog class]]){

                    NSLog(@"B 哥");

                }

                if([obj isKindOfClass:[Cat class]]){

                    NSLog(@"小 龙");

                }

            }

            

  • 相关阅读:
    python异常触发及自定义异常类
    python for i in range(x)应用的问题
    季羡林 暮年沉思录
    再谈python的list类型参数及复制
    Python 列表推导式
    JavaScript:垃圾数据是如何自动回收的?
    JavaScript:this的用法
    JavaScript:浅谈闭包及其回收原则
    ES6:async / await ---使用同步方式写异步代码
    五大主流浏览器与四大浏览器内核
  • 原文地址:https://www.cnblogs.com/sunfuyou/p/5900822.html
Copyright © 2011-2022 走看看