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]);