NSArray的样例用法

#import <Foundation/Foundation.h>
/*
    1.C语言数组和oc数组的区别
    数组:具备相同的数据类型的变量的有序集合
    int ages[63];
    类型 数组名[元素个数];
    2.NSArray
    不可变数组 一个是 可变数组

 */
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //OC数组  是任意的对象地址类型的集合
        //实例化数组对象的时候  最后要以nil做为结束
        //1.实例化一个数组对象
        NSArray *arr=[[NSArray alloc]initWithObjects:@"one",@"two",@"thress", nil];
        NSLog(@"arr:%@",arr);
        //2.实例化数组  用一个数组实例化另一个数组
        NSArray *arr2=[[NSArray alloc]initWithArray:arr];
        NSLog(@"arr2:%@",arr2);
        //3.类方法实例化对象
        NSArray *arr3=[NSArray arrayWithObjects:@"oc",@"c",@"java",@"C#",nil];
        NSLog(@"arr3:%@",arr3);
        //4
        NSArray *arr4=[NSArray arrayWithObject:arr3];
        NSLog(@"arr4:%@",arr4);
        
        //操做数组对象
        //获取数组元素个数
        NSInteger count=[arr4 count];
        NSLog(@"count:%ld",count);
        
        //获取元素  指定索引、下标
        NSString *str=[arr4 objectAtIndex:1];
        NSLog(@"str:%@",str);
        
        //循环和数组
        //普通for  循环遍历oc数组
        for (NSInteger i=0; i<[arr4 count]; i++) {
            NSLog(@"%@",[arr4 objectAtIndex:i]);
        }
        //快速枚举 --》就是一个循环
        
        /*
         for (元素类型 变量名 in 集合对象的地址) {
         
         }
         */
        /*
         快速枚举过程--》只能读数组的内容 不能修改数组内容
         第0次循环 会把 数组arr4的第0个元素 给obj
         第1次循环 会把 数组arr4的第1个元素 给obj
         第2次循环 会把 数组arr4的第2个元素 给obj
         以此类推  知道数组结束 循环就结束了
         */
        for (id obj in arr4) {
            NSLog(@"obj->%@",obj);
        }
    }
    return 0;
}