关于NSArray的一些用法

#import <Foundation/Foundation.h>

//符合OC数组排序函数参数(NSInteger (*)(id, id, void *))的函数
NSInteger comp(id objc1, id objc2, void * p){
    
    NSLog(@"%@  %@", objc1, objc2);
    //-1  升序 (不交换元素)  0  相等 (不交换元素)  1  降序  (交换元素)
    
    //我知道都是字符串
    //objec1 小 -1  大  1  等 0
    if ([objc1 compare:objc2] == 1) {
        return 1;//交换元素
    }else{
        return 0;
    }

    //return 0;
}


int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        //NSArray  不可变数组
        //三个子符串类型的元素
        //  1  简易的初始化操作  @ + []  元素-->对象(id)
        NSArray *array = @[@"1", @"2", @"3"];
        
        //  2  根据索引提取相应的元素
        //objectAtIndex:  返回值类型id
        NSString *element = [array objectAtIndex:0];
        
        NSLog(@"%@", element);
        
        //  3  初始化方法  最后以nil结尾!
        //  va_arg()不能确定元素的个数
        //initWithObjects:
        NSArray *array2 = [[NSArray alloc] initWithObjects:@"a", @"d", @"b", @"c", nil];
        NSLog(@"%@", array2);
        
        //  4  使用一个数组初始化另一个数组
        //initWithArray:
        NSArray *array3 = [[NSArray alloc] initWithArray:array2];
        NSLog(@"数组3:%@", array3);
        
        //  5
        //arrayWithObjects:
        NSArray *array4 = [NSArray arrayWithObjects:@"一", @"二", @"三", nil];
        NSLog(@"%@", array4);
        
        
        //  6  拼接新元素,拼接后的结果以数组的形式返回
        //arrayByAddingObject:
        NSArray *array5 = [array2 arrayByAddingObject:@"d"];
        NSLog(@"%@", array5);
        
        //  7  拼接新元素,以整个数组的形式进行拼接,返回新数组
        //arrayByAddingObjectsFromArray:
        NSArray *array6 = [array2 arrayByAddingObjectsFromArray:array4];
        NSLog(@"%@", array6);
        
        
        //  8  以某个连接符(参数传入的字符串)连接所有的数组元素,以字符串的形式放回。(一般只用于数组元素为字符串的数组)
        //componentsJoinedByString:
        NSString *string = [array2 componentsJoinedByString:@""];
        NSLog(@"%@", string);
        
        
        //  9  根据元素返回索引号
        //indexOfObject:
        NSUInteger intger = [array2 indexOfObject:@"b"];
        NSLog(@"%lu", intger);
        
        
        //  10 返回第一个元素、返回最后一个
        //firstObject   lastObject
        //array  空元素初始化(内存空间已开辟,已初始化)
        //nil  代表空地址   @"" @[] 空内容
        //firstObjct  objectAtIndex:0   都能取第一个元素 存在一样  不存在 第一个取出null  第二个程序异常终止
        NSArray *array7 = @[];
        NSLog(@"%p", array7);
        NSLog(@"个数:%lu", [array7 count]);
        NSLog(@"--%@--", [array7 firstObject]);
        
        //  11
        //sortedArrayUsingFunction: context:
        //使用自定义的函数时,只需把函数指针传过来就可以了。
        NSArray *array8 = [array2 sortedArrayUsingFunction:comp context:nil];
        NSLog(@"排序后的数组:%@", array8);
        
        //实现一个数组  @[@"11", @"23", @"8", @"1", @"99"]  排序方法排序  按照数值的大小(小->大)
        
        
        //NSMutbleArray
        NSMutableArray *mut_array = [[NSMutableArray alloc] initWithObjects:@"11", @"22", @"33", @"44", @"55", nil];
        //  12  添加元素
        //addObject:
        
        
        //  13  删除元素
        //removeObject:
        
        
        //  14  插入元素,根据索引号
        //insertObject: atIndex:
        [mut_array insertObject:@"66" atIndex:5];
        NSLog(@"%@", mut_array);
        
        
        //  15  移除元素,根据索引
        //removeObjectAtIndex:
        [mut_array removeObjectAtIndex:0];
        NSLog(@"%@", mut_array);
        
        //  16  替换元素,根据索引
        //replaceObjectAtIndex: withObject:
        [mut_array replaceObjectAtIndex:0 withObject:@"二二"];
        NSLog(@"%@", mut_array);
        
        //  17  交换元素,根据索引
        //exchangeObjectAtIndex: withObjectAtIndex:
        [mut_array exchangeObjectAtIndex:0 withObjectAtIndex:1];
        NSLog(@"%@", mut_array);
        
        
        //  18  删除元素,限定:1、特定的元素  2、特定的范围中
        //removeObject: inRange:
        NSRange range = {1, 1};
        [mut_array removeObject:@"二二" inRange:range];
        NSLog(@"%@", mut_array);
    }
    return 0;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值