My NSArray用法

1,创建数组

    //创建一个NSArray
    //1,使用类方法创建
    NSArray *ary = [NSArray array];
    NSLog(@"ary = %@",ary);
    NSArray *ary1 = [NSArray arrayWithObject:@"123"];
    NSLog(@"ary1 = %@",ary1);
    NSArray *ary2 = [NSArray arrayWithObjects:@"1",@"hello",@"world", nil];
    NSLog(@"ary2 = %@",ary2);
    NSArray *ary3 = [NSArray arrayWithArray:ary1];
    NSLog(@"ary3 = %@",ary3);

    //2,使用初始化方法创建
    NSArray *ary4 = [[NSArray alloc] init];
    NSLog(@"ary4 = %@",ary4);
    NSArray *ary5 = [[NSArray alloc] initWithArray:ary2];
    NSLog(@"ary5 = %@",ary5);
    NSArray *ary6 = [[NSArray alloc] initWithObjects:@"xq",@"OC",@"some", nil];
    NSLog(@"ary6 = %@",ary6);
    NSString *str5[3] = {@"aaa", @"BBB", @"CCC"}; //(id)类型的指针数组
    NSArray *ary7 = [[NSArray alloc] initWithObjects:str5 count:2];
    NSLog(@"ary7 = %@",ary7);
    
    //3,使用语法糖创建
    ary = @[@"hello",@"lilei",@"gaosha"];
    NSLog(@"ary = %@",ary);

2,数组的查询

/*********************数组查找与检索***********************/
    //判断一个数组里面是否有某个对象
    BOOL boolValue = [ary1 containsObject:@"123"];
    NSLog(@"boolValue = %d",boolValue);
    
//  NSRang是一个结构体,有两个属性:location和length
//  location:是一个索引,该索引标识的是在A字符串中检索到B字符串的索引;
//  length:是检索的字符串的长度,即B字符串的长度;
    NSString *str1 = @"aabbcc?eeff";
    NSRange range = [str1 rangeOfString:@"?ee"]; //若改为“?ed”,将检索不成功,返回的rng.location,rng.length也是错的数据。
    NSLog(@"location = %u,length = %u,range = %@",range.location,range.length,NSStringFromRange(range));
    NSRange range1 = {0,3};//表示从下标0开始检索接下来的3个范围内的元素
    NSRange range2 = NSMakeRange(0, 3);
    
    
    //在数组中查找指定对象是第几个元素,找到后返回index
    NSUInteger i = [ary6 indexOfObject:@"OC"];
    NSLog(@"i = %u",i);//注意如果数组中没有这个元素将返回一个很大的数,即出错了。
    
    //在数组中查找指定对象,并指定查找范围,找到后返回它在数组下标中的位置
    NSUInteger i1 = [ary6 indexOfObject:@"OC" inRange:NSMakeRange(0,3)];
    NSLog(@"i1 = %u",i1); //在ary6数组里检索指定对象@"some",并返回它在数组中的下标位置,检索范围:NSRange range1 = {i,j},从下标i元素处开始,总共检索j个元素包括i在内,注意不要越界。eg:从0开始检索,最大检索范围为三个。如果从1开始检索,则最大检索范围length是2个而不是3个因为从1开始,它后面只有一个元素了。检索失败时返回的数据是不正确的。
    
    //查找数组中等与于指定对象的元素并返回它在数组下标中的位置
    NSUInteger i2 = [ary6 indexOfObjectIdenticalTo:@"xq"];
    NSLog(@"i2 = %u",i2);
    
    //查找数组中等与于指定对象的元素,并指定查找范围,找到后返回它在数组下标中的位置
    NSUInteger i3 = [ary6 indexOfObjectIdenticalTo:@"some" inRange:NSMakeRange(0, ary6.count)];
    NSLog(@"i3 = %u",i3);
    
    bool i4 = [ary6 isEqualToArray: ary7];
    NSLog(@"i4 = %d",i4);

3,数组的修改

/*********************数组的修改******************************/
    //向数组添加对象返回新的数组
    NSArray *ary9 = [[NSArray alloc] init];
    NSArray *ary10 = [ary9 arrayByAddingObject:@"123"]; //生成一个新的数组,
    NSLog(@"ary9 = %@",ary9);//ary9 依然是空的
    NSLog(@"ary10 = %@",ary10);
    
    //组合两个数组
    NSArray *ary11 = [ary10 arrayByAddingObjectsFromArray:ary9];
    NSLog(@"ary11 = %@,ary11.description = %@",ary11,ary11.description);
    
    //将数组切成字符串
    //  NSString *str = [NSString string]; //没必要先创建一个空的字符串对象,但是一个对象要使用则必须要先创建和初始化。
    NSString *str = [ary6 componentsJoinedByString:@"和"];//方法返回的就是一个字符串对象
    NSLog(@"str = %@",str); //输出:str = xq和OC和some


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值