NSArray

  1. 这个是用来存储OC对象的数组,记住,只能存储OC对象,非OC对象编译就直接报错
  2. 这是1个类
  3. 特点:
    1. 存储多个数据
    2. 长度固定
    3. 只能存储OC对象
    4. 每1个元素都是有序的
  4. 创建字符串的时候,不要使用new array alloc等来创建,因为创建出来的数组长度是0,没有意义

最常用的创建NSArray数组的方法:

  • arrayWithObjects
 NSArray *arr = [NSArray arrayWithObjects:@"jack",@"rose",@"lilei", nil];
    NSLog(@"%@",arr);

注意:

  • 最后要写1个nil 代表结束
  • 写在中间的nil,会认为元素到这里就结束
  • -

取出数组元素的值

  • NSArray数组名[下标];
    • 如果下标越界,直接报错
  • 调用方法:
    • NSString *str = [arr objectAtIndex:0];

  • NSArray数组的元素:
    • 是id类型的,所以可以存储任意的OC对象
    • 取出来的元素可以赋值给任意的指针变量
    • 取出NSArray数组的元素不能使用点语法
  • 可以在NSLog中使用%@将元素全部输出

  • 取出元素的个数
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSUInteger num = arr.count;
    NSLog(@"%lu",num);
  • 取出下标的元素的值
NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSLog(@"%@",[arr objectAtIndex:1])  ;
  • 判断是否包含某个元素
    NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
//    NSLog(@"%@",[arr objectAtIndex:1])  ;
  BOOL res =  [arr containsObject:@"lili"];
    if (res == YES)
    {
        NSLog(@"包含");
    }else
    {
        NSLog(@"不包含");
    }
  • 取出首个元素
 NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSString *str = arr.firstObject;
    NSLog(@"%@",str);
  • 取出最后的元素

    NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"rose", nil];
    NSString *str =arr.lastObject;
    NSLog(@"%@",str);
  • 取出某个元素第一次出现的下标
 NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"jack",@"rose", nil];
    NSUInteger num =  [arr indexOfObject:@"jack"];
    NSLog(@"%lu",num);
  • 指定范围内元素出现的第一次的下标
  NSArray *arr = [NSArray arrayWithObjects:@"jack",@"lili",@"jack",@"rose", nil];
    NSUInteger num =  [arr indexOfObject:@"jack" inRange:NSMakeRange(1,2)];
    NSLog(@"%lu",num);

NSArray数组的简要初始化

    NSArray *arr = @[@"jack",@"lilei",@"lili"];

不必在后面加nil


遍历

    NSArray *arr = @[@"jack",@"lilei",@"lili"];

    for (int i = 0 ; i<arr.count; i++)
    {
        NSLog(@"arr[%d] = %@",i,arr[i]);
    }

这里使用for循环遍历

    NSArray *arr = @[@"jack",@"lilei",@"lili"];

    for(NSString *str in arr)
    {
        NSLog(@"%@",str);
    }

使用for增强


使用block遍历NSArray数组

    • (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block
    NSArray *arr = @[@"jack",@"lilei",@"lili"];

    [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"arr[%lu] = %@",idx,obj);
        if (idx == 1)
        {
            *stop = YES;
        }

    }];

block遍历

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值