iOS笔记--NSArray

   NSArrayOC语言的数组。区别于C语言数组的特点在于OC数组是一个对象,数组里面存储的也是一个个对象。不能直接存储基本数据类型(如intlongshort等等)。假如项目需求需要的话,可以先想基本数据类型转化成对象再进行存储。

        我们来看看NSArray的几种创建方法

        1通过对象的方法创建

        NSArray *arr1 = [[NSArray alloc]initWithObjects:@"string1", @"string2",@"string3" , nil];
        NSArray *arr2 = [[NSArray alloc]initWithArray:arr1];

        2 通过类方法来创建

        NSArray *arr3 = [NSArray arrayWithObjects:@"对象1", @"对象2",@"对象3", nil];
        NSArray *arr4 = [NSArray arrayWithArray:arr1];

        3 通过快捷方式创建

        NSArray *arr5 = @[@"a",@"b",arr2, @"c", @"d", @"e"];

NSArray常用的方法

        //    1、获取数组元素个数

        NSArray *arr = @[@"1",@"2",@"2",@"2",@"2",@"2"];
        NSUInteger count =[arr count];

        //    2、通过索引号获取相应的元素(2种)

        NSString *s = [arr objectAtIndex:0];
        NSString *s2 = arr[3]; // 越界访问元素会导致程序崩溃;

        //    3、取出最后一个元素

        [arr lastObject];

        //    4、通过对象地址获取在数组中的下标

        [arr indexOfObject:@"five"]; // 如果没找到返回NSNotFound,找到返回下标

        //    5、判断数组中数组包含元素anObject

        [arr containsObject:@"five"];

        6、取出数组中的一部分元素

        //    1)subarrayWithRange消息

        //    作用:取出数组中指定范围内range的元素

        NSArray *a = [arrsubarrayWithRange:NSMakeRange(3, 5)];

        2)objectsAtIndexes消息

        作用:从数组中获取指定下标的元素

        // 获取数组部分内容:(下标不连续)

        // NSMutableIndexSet: 整数集合类;

       NSMutableIndexSet *indexSet =[[NSMutableIndexSet alloc] init];// 创建一个空的整数集合对象;
        // 需求: 获取arr数组第0,3,5,6个元素;
        [indexSet addIndex:0]; // 把整数0添加进去
        [indexSet addIndex:3]; // 把整数3添加进去
        [indexSet addIndex:5]; // 把整数5添加进去
        [indexSet addIndex:6]; // 把整数6添加进去
        //调用方法objectsAtIndexes:根据indexSet里面整数序号获取对象的元素,组成数组返回
        NSArray *b =[arrobjectsAtIndexes:indexSet];
        NSLog(@"%@",b);

        6、判断NSArray中存储的对象是否为指定类型的对象

        因为NSArray里面存储任意类型对象, 怎么才知道存储的对象是属于哪一个类;

        isKindOfClass使用

        [对象 isKindOfClass:[类名 class]]  判断对象是否属于该类; 如果属于返回YES,否则返回NO;

        

        NSArray数组的遍历

        c语言的遍历方法遍历一个数组的所有元素

        1、通过下标遍历数组

       for(NSInteger i = 0; i < [arr count] ;i++) {
            arr[i];
        }

        2NSEnumerator  枚举器

        1)objectEnumerator消息

        作用:正序输出所有元素

        2)reverseObjectEnumerator消息

        作用:逆序输出所有元素


        3、快速枚举法

        1)for in 语法

排序:

	/// 乱序数组
        NSMutableArray *array = [[NSMutableArray alloc] initWithArray:@[@"c",@"e", @"d",  @"b", @"a"]];
        [array sortUsingSelector:@selector(compare:)];
        NSLog(@"升序 = %@", array);
        [array sortUsingSelector:@selector(myCompare:)];
        NSLog(@"降序 = %@", array);

你可能感兴趣的:(iOS--OC语法与基础)