IOS--OC--LessonNSArray 数组

Objective-C与Swift在iOS开发中的应用
本文详细探讨了Objective-C与Swift两种语言在iOS开发领域的应用与区别,包括其核心特性、优缺点及实际案例分析。

一 OC中的集合类型:
/*
NSArray 数组
NSDictionary 字典
NSSet 集
*/

二 数组
1.1定义: NSArray 继承于 NSObject 用来管理/存储有序的对象

ps
自定义:
NSArray *array3 = [[NSArray alloc]initWithObjects:@"Rose",@"Jack", nil,@"Tom",@"jer", nil];//nil 表述 数组结束
    NSLog(@"%@",array3);
    遍历构造器:
    NSArray *array4= [NSArray arrayWithObjects:@"l",@"m",@"c",@"s", nil] ;
    NSLog(@"%@",array4);

1.2 通过下标访问数组中的元素 因为数组里的对象是有序的
两种方法求字符中的对象一个是通过下标数字

ps:
1NSString *str = [array4 objectAtIndex:0];
    NSLog(@"%@",str);
2⃣ 一个是直接第几个数字英文加 Object
     NSString *str1 =  [ array4 firstObject];
    NSLog(@"%@",str1);

3⃣  获取数组中元素个数
    NSUInteger cou = [array4 count];
    NSLog(@"%lu",cou);

2.1 NSMutableArray 可变数组 给的是空间 不是数组
2.1 注意:在使用 NSMutableArray 时 先要将他设成空的

ps: NSMutableArray *array5 = [[NSMutableArray alloc]initWithCapacity:0];
    NSLog(@"%@",array5);

2.2添加对象

1⃣ 逐个添加 addObject:(nsstring*)
    [array5 addObject:@"尼克斯"];
    [array5 addObject:@"莉莉"];
    [array5 addObject:@"杰克"];
     NSLog(@"%@",array5);
注意 :这样打印出来只能是编码 看不出来
需要遍历一下 for
for (NSUInteger i =0; i <[array5 count]; i++) {
        NSLog(@"%@",[array5 objectAtIndex:i]);
    }

2⃣ 一次添加很多 arrayWithObjects:

NSMutableArray *array6 = [NSMutableArray arrayWithObjects:@"小明",@"小红",@"小王",@"小张", nil];
    NSLog(@"%@",array6);
注意:仍需要遍历
    for (NSUInteger i = 0; i <[array6 count]; i++) {
        NSLog(@"%@",[array6 objectAtIndex:i]);
    }

3⃣ 用一个数组 为另一个添加元素

2.3删除数组元素

11.删除指定位置的对象
公式:removeObjectAtIndex
    [array8 removeObjectAtIndex:1];
    NSLog(@"%@",array8);

//   2.删除某个对象 已知某个对象删除
公式: removeObject:@“4”  (nsstring*)就是你知道的
    [array8 removeObject:@"4"];
    NSLog(@"%@",array8);

// 删除最后一个元素 
公式:removeLastObject
    [array8 removeLastObject];
    NSLog(@"%@",array8);

//清空数组
公式:removeAllObjects
    [array8 removeAllObjects];
    NSLog(@"%@",array8);
    */

2.4 排序
1⃣
普通冒泡排序的过程:

NSMutableArray *array9 = [NSMutableArray arrayWithObjects:@"iphone",@"ipod",@"ipad",@"iwatch",@"iMac",@"iTouch", nil];
// 遍历数组
for (NSUInteger i = 0; i <[array9 count]; i++) {
        NSLog(@"%@",[array9 objectAtIndex:i]);
    }
冒泡排序:
for (NSUInteger i = 0; i <[ array9 count]-1; i++) {
        for (NSUInteger j =0; j < [array9 count]-i-1; j++) {
//     获取前一个位置的元素 和后一个相比较
    NSString *firsts1 = [ array9 objectAtIndex:j];
    NSString *seconds2 = [array9 objectAtIndex:j+1];
//  通过比较元素大小决定是否交换
//   NSOrderedDescending = 1
            if ([firsts1 compare:seconds2]>1) {
                [array9 exchangeObjectAtIndex:j withObjectAtIndex:j+1];//交换位置
  }
     for (NSString *str in array9) {
                NSLog(@"%@",str );
    }
}
    }

变型:  NSArray *sortarray = [array9 sortedArrayUsingSelector:@selector(compare:)];

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

注意:OC 中的数组排序 @selector()选择器 ()括号内选择的是用什么方法 只能完成升序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值