• iOS数组排序 请求后,数组元素的排序 时间戳,最热,点赞数等


       [ZOYSessionManager dataWithUrlString:GetVideoDataComment andParameter:@{@"id":userID,@"pageNo":@1,@"pageSize":@20}  SucessBlock:^(id data) {

            

    //        NSDictionary * dic = [(NSData *)data  objectFromJSONData];

            

            self->_mode=[CommunityModel mj_objectWithKeyValues:data];

                    NSLog(@"mode%@",self->_mode);

            for (self->_itemmodel in self->_mode.content) {

            [self.accountArray addObject:self->_itemmodel];

                NSMutableArray *timeArr = [[NSMutableArray alloc]init];

                NSMutableDictionary *dateKeyArr = [[NSMutableDictionary alloc]init];

                for(CommunitItemModel *acc in _accountArray) {

                    // 时间戳转成时间对象用于排序

                    int timer = [acc.date intValue];

                    NSDate  *date = [NSDate dateWithTimeIntervalSince1970:timer];

                    [timeArr addObject:date];

                    // 时间戳转成时间戳字符串作为key,制作哈希表

                    NSNumber *dataNum = [NSNumber numberWithLongLong:timer];

                    NSString *datekey = [dataNum stringValue];

                    [dateKeyArr setObject:acc forKey:datekey];

                }

                // 3.将时间NSDate数组排序

                NSArray *orderedDateArray = [timeArr sortedArrayUsingComparator:^NSComparisonResult(NSDate *date1, NSDate *date2) {

                    // 降序排序,最近的时间靠前

                    return [date2 compare:date1];

                }];

                

                // 4.根据排序好的时间数组对号入座将对象按时间排序

                // 临时数组,保存排序后的对象数组

                NSMutableArray *sortedAccounts = [[NSMutableArray alloc]init];

                NSDate *datekey = [[NSDate alloc]init];

                for (int i = 0; i<orderedDateArray.count; i++) {

                    datekey = orderedDateArray[i];

                    // 日期对象转换成时间戳字符串key

                    NSString *datekeys = [NSString stringWithFormat:@"%lld", (long long)[datekey timeIntervalSince1970]];

                    // 根据时间戳字符串key取对应的对象(哈希表)

                    [sortedAccounts addObject:[dateKeyArr objectForKey:datekeys]];

                }

                // 5.更新排序后的对象数组[ARC中不需要手动释放排序前的数组]

                _accountArray = sortedAccounts;

                

                self.dataArray = _accountArray;

    //            [self.dataArray addObject:self->_itemmodel];

                [self.myTableView reloadData];

                

            }

            

    //                NSLog(@"dataArray%@",self.dataArray);

              [self.myTableView reloadData];

        } failureBlock:^(NSError *error) {

            NSLog(@"error  is  %@",error);

        }];

        NSLog(@"userID%@,@1,@20",userID);

        self.myTableView.estimatedRowHeight = 80.0f;

        self.myTableView.rowHeight = UITableViewAutomaticDimension;

    //    [self.myTableView reloadData];

    }

     整合后的小demohttps://github.com/ZOYOOPlus/TimeSortDemo

  • 相关阅读:
    UICollectionView 布局
    ios 调用支付宝
    iOS POST 上传图片
    ios 判断字符串是否为空
    让写代码成为每天的习惯
    gocron_跨平台定时任务管理器
    monkey做安卓APP的黑盒自动化测试
    Android自动化测试框架分析
    联合查询中where 和and的区别
    JIRA中导出BUG列表是CSV格式的,打开后是乱码
  • 原文地址:https://www.cnblogs.com/tangyuanby2/p/6767385.html
Copyright © 2020-2023  润新知