NSArray, NSNumber

#warning message - NSArray, NSNumber

        

        

#pragma mark - 不可变数组

        

        //IOS中存放数据的容器类都称为集合(collection),数组是存储在UI中可显示内容的集合

        //注意:数组是有序集合,数组中的元素都为对象类型;数组有下标(index)的概念.靠index来索引元素,下标从0开始

#warning message - 关于 [NSArray array] 和 [[NSArray alloc] init]

        //[NSArray array]不需要release,使用autoreleasepool机制;

        //[[NSArray alloc] init]需要自己手动release,ARC环境下不需要手动release;

        

        NSArray *arr = [[NSArray alloc] initWithObjects:@"GaiLun", @"JiaWen", @"ZhaoXin", @"LaKeSi", nil];

        NSArray *arr1 = [NSArray arrayWithObjects:@"GaiLun", @"JiaWen", @"ZhaoXin", @"LaKeSi", nil];

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

        NSLog(@"arr1 = %@", arr1);

        //[arr release];会报错

        NSArray *arr2 = [NSArray arrayWithArray:arr];

        NSLog(@"arr2 = %@", arr2);

        //新建一个数组,数组中的元素为数组

        NSArray *arr3 = [NSArray arrayWithObjects:arr, arr1, arr2, nil];

        //新数组中的元素个数为 3

        NSLog(@"arr3.count = %ld", arr3.count);

        //通过下标访问数组中的元素

        NSLog(@"arr[0] = %@", arr[0]);

        NSLog(@"arr[1] = %@", [arr objectAtIndex:1]);

        //通过元素找下标

        NSLog(@"下标 = %ld", [arr indexOfObject:@"Zhaoxin"]);

        

#pragma mark - 可变数组

        

        //可变数组必须先初始化之后才能使用,是NSArray的子类,继承NSArray的所有方法

        

        //   NSMutableArray *arrM = [NSMutableArray array];

        

        //数组arrM直接从arr数组中获取元素

        //     [arrM addObjectsFromArray:arr];

        //     NSLog(@"arrM = %@", arrM);

        

        //数组arrM中有一个元素,就是arr数组

        //        [arrM addObject:arr];

        //        NSLog(@"arrM = %@", arrM);

        

        NSMutableArray *arrM = [NSMutableArray array];

        NSArray *arrN = [NSArray arrayWithObjects:@"GaiLun", @"JiaWen", @"ZhaoXin", @"LaKeSi", nil];

        [arrM addObjectsFromArray:arrN];

        NSLog(@"arrM = %@", arrM);

        

#pragma mark - 添加

        

        [arrM addObject:@"xxxxx"];

        NSLog(@"arrM = %@", arrM);

        NSLog(@"arrM[3] = %@", [arrM objectAtIndex:3]);

        NSLog(@"arrM[3] = %@", arrM[3]);

        

#pragma mark - 删除

        

        //通过值删除

        

        [arrM removeObject:@"LaKeSi"];

        NSLog(@"arrM = %@", arrM);

        

        //通过下标删除

        

        [arrM removeObjectAtIndex:3];

        NSLog(@"arrM = %@", arrM);

        

        //删除最后一个

        

        [arrM removeLastObject];

        NSLog(@"arrM = %@", arrM);

        

#pragma mark - 替换

        

        //把下标为N的元素用xxxxx替换

        [arrM replaceObjectAtIndex:1 withObject:@"UUUUUUU"];

        NSLog(@"arrM = %@", arrM);

        

#pragma mark - 交换

        

        [arrM exchangeObjectAtIndex:0 withObjectAtIndex:1];

        NSLog(@"arrM = %@", arrM);

        

#pragma mark - 遍历数组,冒泡排序

        

        //建立数组

        NSMutableArray *arrU = [NSMutableArray array];

        NSArray *arr0 = [NSArray arrayWithObjects:@"GaiLun", @"JiaWen", @"ZhaoXin", @"LaKeSi", nil];

        [arrU addObjectsFromArray:arr0];

        NSLog(@"arrU = %@", arrU);

        //通过下标遍历

        for (NSInteger i = 0; i < arrU.count - 1; i++) {

            for (NSInteger j = 0; j < arrU.count - i - 1; j++) {

                if (NSOrderedDescending == [[arrU objectAtIndex:j] compare:[arrU objectAtIndex:j + 1]]) {

                    [arrU exchangeObjectAtIndex:j withObjectAtIndex:j + 1];

                }

            }

        }

        for (NSInteger i =  0; i < arrU.count; i++) {

            NSLog(@"arrU = %@", [arrU objectAtIndex:i]);

        }

        

#pragma mark - 值对象 NSNumebr

        

        //完成数值标量 和 对象类型 的 互转

        

        //所有的基础类型变量是不能当对象存储到容器中(数组,字典等),因此,基础类变量想要存储的话需要转换成对象才能存储,读取时先取出对象,再将对象还原为以前的类型

        

        NSInteger a1 = 10;

        NSNumber *num1 = [NSNumber numberWithInteger:a1];

        [arrU addObject:num1];

        NSNumber *num2 = [arrU lastObject];

        NSInteger b = [num2 integerValue];

        NSLog(@"%ld", b);

        

        //NSValue(对应的结构体)

        //将结构体转换为对象

        

        NSRange range99 = NSMakeRange(0, 0);

        NSValue *v = [NSValue valueWithRange:range99];

        NSLog(@"%@", v);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值