iOS之NSArray使用集合

===========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转换成NSArray======
/如果想排序以后再取,可以这样:
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];

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值