Objective-C 数组NSArray

本文介绍了Objective-C的NSArray,包括其不可变性、创建方式、删除与修改(通过NSMutableArray)、查询、排序、比较、文件读写操作以及内存管理。特别强调了数组中的对象会自动执行retain,而在数组release时,会释放所有元素。
摘要由CSDN通过智能技术生成

一、数组简介

NSArray:用来存储有序数组,它是不可变的,也不能存储C语言中的基本数据类型(int、float、double、enum、struct),也不能存nil,如果需要使用基本数据类型,需要先转成Objective-c中的对象。如NSNumber。另外,数组的最后一个元素一定是nil,表示结束。

二、创建数组

//1、array
NSArray * arr = [NSArray array];    //因为是类方法,所以无需管理内存
//2、arrayWithArray:
NSArray * arr1 = [NSArray arrayWithArray:arr];
//3、arrayWithObject:
NSArray * arr3 = [NSArray arrayWithObject:@"Apple"];
//4、arrayWithObjects:
NSArray * arr4 = [NSArray arrayWithObjects:@"Apple", @"Android", nil];
//5、arrayWithObjects:count:
NSString * str5[3] = {@"aaa", @"BBB", @"CCC"};
NSArray * arr5 = [NSArray arrayWithObjects:str5 count:2]; //获取数量
//6、init
NSArray * arr6 = [[NSArray alloc] init];
arr6 = @[@"LLL", @"IIII", @"BBBB"];
[arr6 release]; //对象需要进行内存释放
//7、initWithArray:
NSArray * arr7 = [[NSArray alloc] initWithArray:arr6];
[arr7 release];
//8、initWithObjects:
NSArray * arr8 = [[NSArray alloc] initWithObjects:arr6, arr5, nil];
//9、initWithObjects:count:
NSArray * arr9 = [[NSArray alloc] initWithObjects:str5 count:1];
[arr9 release];
//10、arrayWithCapacity 初始化可变数组对象的长度
NSMutableArray *array10 = [NSMutableArray arrayWithCapacity:10];
//11、initWithCapacity
NSMutableArray * array101 = [[NSMutableArray alloc] initWithCapacity:10];

*自面量(@) < @[<#objects, ...#>] >

可以使用下面的方式创建数组,并且无需担心内存

NSArray *arr2 = @[@"Apple", @"DELL", @"Lenovo"];

三、数组删除(NSMutableArray)

//1.removeAllObjects 删除数组中所有的Objects
NSMutableArray *list = [[NSMutableArray alloc] init];
Person *car = [[Person alloc] init];
car.price = 10;
car.color = 1;
Person *car1 = [[Person alloc] init];
car1.price = 120;
car1.color = 12;
[list addObject:car];
[list addObject:car1];
NSLog(@"%@", list);
[list removeAllObjects]; // Crash here
 NSLog(@"%@", list);

//2、removeLastObject 删除最后一个object
[list removeLastObject];
NSLog(@"%@", list);

//3、removeObject: //删除指定Object
[list removeObject:car];
NSLog(@"%@", list);

//4、removeObject:inRange: //在指定范围删除car1
NSRange range = {
  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值