oc基础之数组

NSArray创建

NSArray*arr = [[NSArrayalloc]init];

NSArray*arr = [NSArray arrayWithObject:@"aaa"];

NSArray*arr = [NSArrayarrayWithObjects:@"aaa",@"bbb",@"ccc",nil];//数组中的nil是结束符

NSLog(@"%@", arr);

输出:

(

aaa,

bbb,

ccc

)

简写形式

NSArray*arr = @[@"aaa",@"bbb",@"ccc"];

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

NSArray遍历

常规遍历

for(inti = 0; i < arr.count; ++i) {

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

}

使用OC中的增强for循环来遍历

for(NSString*objinarr) {

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

}

使用OC数组的迭代器来遍历

[arrenumerateObjectsUsingBlock:^(idobj,NSUIntegeridx,BOOL*stop) {

if(idx == 1) {

*stop =YES;

}

NSLog(@"obj = %@, idx = %lu", obj, idx);

}];

数组排序

Person*p1 = [Personnew];

p1.age= 10;

Person*p2 = [Personnew];

p2.age= 20;

Person*p3 = [Personnew];

p3.age= 5;

Person*p4 = [Personnew];

p4.age= 7;

NSArray*arr = @[p1, p2, p3, p4];

NSLog(@"排序前: %@", arr);

//按照人的年龄进行排序

NSArray*newArr = [arrsortedArrayWithOptions:NSSortStableusingComparator:^NSComparisonResult(Person*obj1,Person*obj2) {

//每次调用该block都会取出数组中的两个元素给我们

//二分排序

returnobj1.age> obj2.age;//该方法默认会按照升序排序

}];

NSLog(@"排序后: %@", newArr);

NSArray文件读写

将数组写入到一个文件中(如果没有这个文件会生成新的文件)

注意:writeToFile只能写入数组中保存的元素都是Foundation框架中的类创建的对象,如果保存的是自定义对象那么不能写入

NSArray*arr = @[@"aaa",@"bbb",@"ccc",@123,@222];

BOOLflay  = [arrwriteToFile:@"/Users/kobi/Desktop/abc.plist"atomically:YES];

NSLog(@"flay = %i",flay);

2.从文件中读取一个数组

NSArray*newArray = [NSArrayarrayWithContentsOfFile:@"/Users/kobi/Desktop/abc.plist"];

NSLog(@"%@",newArray);

可变数组 NSMutableArray 

增删改查

//注意:不能通过@[](简写形式)来创建一个可变数组,因为@[]创建出来的是一个不可变的数组

创建一个空的数组(NSMutableArray只能先创建再赋值)

NSMutableArray*arrM = [NSMutableArrayarray];

添加元素

[arrMaddObject:@"aaa"];

//将指定数组中的元素都取出来,放到arrM中

[arrMaddObjectsFromArray:@[@"bbb",@"ccc"]];

//注意:以下是将整个数组作为一个元素添加

[arrMaddObject:@[@"aaa",@"jjj"]];

NSLog(@"%@",arrM);

//在下标为几的地方插入一个元素

[arrMinsertObject:@"xsq"atIndex:1];

//插入一组数据,指定数组需要插入的位置,和插入多少个

NSRangerange =NSMakeRange(0, 2);

NSIndexSet*set = [NSIndexSetindexSetWithIndexesInRange:range];

[arrMinsertObjects:@[@"Ab",@"Cd"]atIndexes:set];

NSLog(@"%@",arrM);

删除元素

[arrM removeObjectAtIndex:0];(删除下标为几的元素)

//删除最后一个元素

[arrM removeLastObject];

//删除全部元素

[arrM removeAllObjects];

//删除某个元素

[arrM removeObject:@"Cd"];

替换元素(替换下标为几的元素)

[arrM replaceObjectAtIndex:4 withObject:@"lnj"];

NSLog(@"%@",arrM);

替换(简写)

arrM[0] =@"as";

NSLog(@"%@",arrM);

获取元素

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

NSLog(@"%@",arrM[1]);

你可能感兴趣的:(oc基础之数组)