[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. RN初始化环境快速配置

    1.安装node node是基于js的,node.js轻量级的Web服务器,想要是React Native跑起来需要node环境,可以去官网下载安装node.js 下载地址:https://nodej ...

  2. [HAOI2015]T2

    [题目描述] 有一棵点数为N的树,以点1为根,且树点有边权.然后有M个操作,分为三种: 操作1:把某个节点x的点权增加a. 操作2:把某个节点x为根的子树中所有点的点权都增加a. 操作3:询问某个节点 ...

  3. BootStrap实现图片轮播

    <div class="container">        <div data-ride="carousel" id="carou ...

  4. 防止xss(脚本攻击)的方法之过滤器

    一  什么是脚本注入 概念我就不说了 直接百度一份 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端 ...

  5. 那些年java MD5加密字符编码的坑

    相信做过MD5加密的童鞋都遇到过字符编码的坑,一般加密出来的结果和其他人不一样都是字符编码不一致导致的,比如类文件的字符编码.浏览器的字符编码等和对方不一致,所以就需要转码统一字符. 以下是笔者转码过 ...

  6. 返回值过长时被nginx截断的解决办法

    今天在写接口时碰到了这个问题,返回json格式的数据,但是被截断了经过排查,才发现是数据过大超出缓冲区最大容量,而将数据写入临时文件时又没有权限,所以再返回时,超出缓冲区的数据将丢失解决方法:给fas ...

  7. SSH密钥登陆免密码方法

    原帖地址:http://ask.apelearn.com/question/798 用Putty实现A机器远程登陆B机器,具体实现请看链接:http://www.cnblogs.com/ImJerry ...

  8. Win10配Theano环境和Keras框架

    网络上有各种各样的win7 64bit安装theano的方法,我也试过好多,各种各样的问题.因为之前没了解过MinGw等东西,所以安装起来比较费劲,经过不断的尝试,最终我按照以下过程安装成功. 其实过 ...

  9. Hive 导入、导出数据

    <------ 导入 ------> 从本地目录文件导入Hive表 语法:LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABL ...

  10. 获得Python脚本所在目录

    如何获得Python脚本所在目录的位置   On this page... (hide) 1.  以前的方法 2.  正确的方法 3.  实例说明   (Edit) 1.  以前的方法 如果是要获得程 ...