===========1.数组中元素按升序或降序列排列
//升序
NSArray* tempIds = [spceidsArr sortedArrayUsingComparator:^NSComparisonResult(NSString* obj1,NSString* obj2) {
NSNumber* n1 = [NSNumbernumberWithInteger:[obj1integerValue]];
NSNumber* n2 = [NSNumbernumberWithInteger:[obj2integerValue]];
return [n1compare:n2];
}];
===========2.将string字符串转换为array数组
NSArray *array = [Str componentsSeparatedByString:@","];
=================3.block遍历数组
[superView.subviewsenumerateObjectsUsingBlock:^(__kindofUIView * _Nonnull view,NSUInteger idx,BOOL *_Nonnull stop) {
if (view.tag != 999) {
[view removeFromSuperview];
}
}];
===============4.
//1)创建一个空数组
NSArray *arr1 = [NSArrayarray];
//2)创建数组,只有一个元素
NSArray *arr2 = [NSArrayarrayWithObject:@"1"];
//3)创建数组,有多个元素
// nil 表示数组赋值结束
NSArray *arr3 = [NSArrayarrayWithObjects:@"one",@"two",@1,nil];
//4)调用对象方法,创建数组
//nil Nil NULL NSNULL
NSArray *arr4 = [[NSArrayalloc]initWithObjects:@"three",[NSNullnull],@"four",nil];
//5)用一个数组可以创建另外一个数组
NSArray *arr5 = [NSArrayarrayWithArray:arr3];
NSArray *arr3 = [NSArray arrayWithObjects:@"one",@"two",@1,@"three",nil];
//1)获取数组的长度 count获取数组的元素的个数
NSLog(@"%ld",arr3.count);
//2)根据下标,获取下标对应的对象
NSLog(@"%@",[arr3 objectAtIndex:3]);
//3)返回元素的下标
NSUInteger loc = [arr3 indexOfObject:@"three"];
NSLog(@"%ld",loc);
//4)数组中是否包含了某个元素
if([arr3 containsObject:@"four"]){
NSLog(@"包含此元素");
}else{
NSLog(@"不包含");
}
NSArray简化形式:
//用简化的方式,来定义和访问数组元素
//1)用简化的方式,定义数组
//格式: @[数组元素 ]
NSArray *arr = @[@"1",@"one",@"3",@4,@"ONE"];
NSString *str =[arrobjectAtIndex:2];
//2)用简化的方式访问数组元素
str = arr[1]; //C语言形式的数组元素访问
NSArray的遍历:
//对数组进行遍历
//1) 普通的方式,通过下标访问
for (int i=0; i<arr.count; i++) {
NSLog(@"-> %@",arr[i]);
}
//2) 快速枚举法 for循环的增强形式
for (NSString * str in arr) {
NSLog(@"---> %@",str);
}
//3) 使用block的方式,进行访问
// 参数: 数组元素 , 元素下标 , 是否停止
//stop:YES 会停止, stop:NO不会停止
[arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx,BOOL *stop) {
if(idx ==2){
*stop = YES; //停止 // break;
}else{
NSLog(@"idx = %ld,obj = %@",idx,obj);
}
}];
NSArray读写文件:
写入
NSArray *array = [NSArray arrayWithObjects:@"one",@"zbz",@"cgx",@"sb",@"cjk",@"senni",nil];
//把NSArray中的内容,写入到文件中
//arr.plist 一种特殊的文件格式
BOOL isWrite = [array writeToFile:@"/Users/lambo/Desktop/arr.plist" atomically:YES];
if(isWrite){
//从文件中,读取一个数组信息
NSArray *readArr = [NSArray arrayWithContentsOfFile:@"/Users/lambo/Desktop/arr.plist"];
把数组拼接成为字符串:
//定义一个数组
NSArray *arr = @[@1,@2,@3,@4];
//1)需求:把数组中的元素用 "-"连接起来
// [数组 componentsJoinedByString @"分隔符"];
// 1-2-3-4
NSString *str = [arr componentsJoinedByString:@"-"];
把字符串拆分为数组:
//2) 给一个字符串,分割成一个数组
// 400-000-6666 //取得 400 000 6666
NSString *str2 = @"400-000-6666";
NSArray *arr2 = [str2 componentsSeparatedByString:@"-"];
NSLog(@"%@",[arr2 firstObject]);
NSLog(@"%@",[arr2 lastObject]);
NSLog(@"%@",arr2[1]);
===================5.删除数组中的元素
[array removeObjectAtIndex:1];
====================
=================7.添加另一个数组中的元素到本数组self.dealArray中
[self.dealArray addObjectsFromArray:[HMDealTool collectWithPage:self.currentPage]];
================8.删除数组中的元素_-----通过数组删除
[self.dealArray removeObjectsInArray:tempArray];
===========9. 数组中包含某个对象
[Array containsObjet:@"a"];
如果调用了此方法containsObject: --> 内部其实会调用对象的isEqual方法
sEqual 比较的是对象的哈希值
解决方案 : 可以重写isEqual方法, 指定要比较的部分
#pragma mark 重写isEqual方法, 指定要比较的对象
- (BOOL)isEqual:(HMAnnotationModel *)object
{
return [self.title isEqualToString:object.title];
}
NSSet *users = [groupUser users];
NSSortDescriptor *sd = [[NSSortDescriptor alloc] initWithKey:@"displayName" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sd, nil];
NSArray *userArray = [users sortedArrayUsingDescriptors:sortDescriptors];
//如果直接取,可以这样:
NSArray *userArray = [users allObjects];