[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

iOS数组排序 请求后,数组元素的排序 时间戳,最热,点赞数等的更多相关文章

  1. 对数组元素进行排序的方法总结(利用C++)

    首先,对数组元素进行排序方法总结为以下两类: 一.简单排序算法(时间复杂度O(n*n)) 1.插入排序 2.选择排序 3.交换排序,即冒泡排序 二.先进排序算法(时间复杂度O(n*logn)) 1.快 ...

  2. c - 向一个排序好的数组插入一个数,插入后数组依然是排序好的

    概述 因为这里只是演示插入1个数,这里我不用malloc再重新分配,而是将原先数组的腾出一个占位符. 完整代码如下: #include <stdio.h> #define LEN 6 // ...

  3. C语言:通过指针对数组元素进行排序

    // //  main.c //  Pointer_array // //  Created by ma c on 15/8/2. //  Copyright (c) 2015年 bjsxt. All ...

  4. js将数组元素随机排序的方法

    在群里看见的一个面试题,试了一下,还是可以做出来的,但是需要查资料,主要是岁一些方法了解的不清楚,可能这个跟我平时不太注重基础理论有关系,像什么构造函数啊,我根本就不关心什么叫构造函数,我一直都以为我 ...

  5. php数组的各种排序

    转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/11/2207494.html 如果你已经使用了一段时间PHP的话,那么,你应 ...

  6. 数组Array.sort()排序的方法

    数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...

  7. shell脚本之数组基本操作及排序

    数组的基本操作及排序 1.数组定义方法: ( 6 7 9 4 3 2) 0 1 2 3 4 5 #下标号 方法一: 数组名=(value0 value1 value2 -) 方法二: 数组名=([0] ...

  8. [Swift]LeetCode462. 最少移动次数使数组元素相等 II | Minimum Moves to Equal Array Elements II

    Given a non-empty integer array, find the minimum number of moves required to make all array element ...

  9. 462. 最少移动次数使数组元素相等 II

    给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1. 您可以假设数组的长度最多为10000. 例如: 输入: [1,2,3] 输出: 2 说明: 只 ...

随机推荐

  1. vue编译环境和线上环境url切换

    新建一个配置js,导入到接口请求管理类,可以自动根据环境切换if (process.env.NODE_ENV == 'development') { baseUrl = ''; }else{ base ...

  2. Dancing Links DLX

    Dancing Links DLX Dancing Links 用来解精准覆盖问题. 精准覆盖问题有两种版本. 精准覆盖 : 给一个01矩阵,如何选出若干行,使得每列都有且仅有一个1. 可以求最少行数 ...

  3. 源码安装git

    1.安装依赖包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 2.下载git源码并解压缩 wget ...

  4. Codeforces Round #360 (Div. 2) D. Remainders Game

    D. Remainders Game time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  5. Global.asax详解

    在网上找了N多相关的东西总说的不够细,现在终于找到了.可以了解web.cofig和Global.asax之间的关系以及执行的顺序. 在Global.asax.cs文件中 protected void ...

  6. 【Python】@staticmethod和@classmethod的作用与区别

    前言 Python其实有3个方法,即静态方法(staticmethod),类方法(classmethod)和实例方法,一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法.而使用@static ...

  7. apollo stomp client 代码示例

    0.环境准备 0.1.linux 0.2.java 0.3.下载apollo二进制包,解压 0.4.创建broker,名字为 userlog {APOLLO_HOME}/bin/apollo crea ...

  8. windows service 2008 内存吃尽解决方案

    最近用windows2008,发现系统运行一段时间后,内存吃紧,赶紧打开资源查看器,发现当前运行的程序占有内存都很小,后经查资料,原来是被windows2008的文件缓存吃尽了,这是windows20 ...

  9. 卡在了“正在设定 ttf-mscorefonts-installer”的解决

    方向键啊鼠标的都不行,其实用tab键就可以选择了.冏死--

  10. ubuntu 16.04网速监控脚本

    #!/bin/bashif [ $# -ne 1 ];thendev="enp2s0"elsedev=$1fi while :doRX1=`/sbin/ifconfig $dev ...