数组

//#define NSLog(FORMAT, ...) printf("%s ", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]) 

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

    @autoreleasepool {

      

        //创建数组

        //1.快速创建  @[]

        NSArray *week=@[@"MON",@"TUE",@"WED",@"THU",@"FRI",@"SAT",@"SUN"];

        

        //2.创建空的数组

        NSArray *arr=[[NSArray alloc]init];

        arr=@[@"MON",@"TUE",@"WED"];

        NSLog(@"%@",arr);

        NSArray *arr1=[NSArray array];

        //注意结尾使用nil进行结束

        NSArray *arr2=[NSArray arrayWithObjects:@"apple",@"banbana", nil];

        NSArray *arr3=[NSArray arrayWithObjects:@"a", nil];

        //复制

        NSArray *arrnew=[NSArray arrayWithArray:week];

        NSLog(@"%@",arrnew);

        //获取数组中元素的个数

        NSInteger count=[arrnew count];

        NSLog(@"%ld", count);

        //根据下角标 访问数组中的元素

        NSString *str=[arrnew objectAtIndex:0];

        NSLog(@"%@",str);

        //向数组内添加一个元素

        NSArray *arrAdd=[arrnew arrayByAddingObject:@"eight"];

        NSLog(@"%@",arrAdd);

        //使用指定的字符串将数组中元素连接起来

        NSString *newStr=[arrnew componentsJoinedByString:@"-"];

        NSLog(@"%@",newStr);

        //判定数组中是否包含某个对象

        BOOL result=[arrnew containsObject:@"THU"];

        NSLog(@"%d",result);

        //查询某个对象在数组中的位置

        NSInteger index=[arrnew indexOfObject:@"THU"];

        NSLog(@"字符串在数组中的位置:%d",(int)index+1);

        //获取数组中最后一个元素

        NSString *lastString=[arrAdd lastObject];

        NSLog(@"%@",lastString);

        NSLog(@" ");

        //数组遍历(枚举)对集合中的元素依次不重复的进行遍历

        //下标遍历

//        for (int i=0; i<[week count]; i++) {

//            NSString *element=[week objectAtIndex:i];

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

//        }

        //快速遍历 for in 效率高

//        for (NSString *arr in week){

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

//            

//        }

        //id当不确定数组元素的类型时,选择使用的

        for (id arr1 in week){

            

            NSLog(@"%@",arr1);

        }

        NSLog(@" ");

        //数组内元素排序  首字母

//        NSArray *sortArr=[week sortedArrayUsingSelector:@selector(compare:)];

//        for (id sort in sortArr) {

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

//        }

        //数组排序--block   nsobjectid:任意对象类型

        //当不确定数组元素的类型时,可以选择id

        //nsobject和id 都是指向任何对象

        //nsobject使用时必须强转

        //instancetype 可以返回和方法所在的类相同的对象

        

        NSComparator sortBlock=^(id obj1,id obj2){

            return [obj2 compare:obj1];

        };

        NSArray *sortArr=[week sortedArrayUsingComparator:sortBlock];

        for(id sort in sortArr){

            NSLog(@"%@",sort);

        }

    }

    return 0;

  }

原文地址:https://www.cnblogs.com/LiHai/p/5113036.html