本文共 1152 字,大约阅读时间需要 3 分钟。
个人理解及总结
用到方法
// 这里的array是我们要排序的数组 NSArray *sort = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { <#code#> }];这里obj1是数组array中的第一个对象;
obj2是数组array中的第二个对象;
我们想根据对象中的某个对象排序, 比较
if (obj1.对象 > obj2.对象)
{
返回正序
}
else
{
返回倒叙
}
下面是我根据环信SDK写的一个app, 其聊天列表需要按照时间戳排序, 新发的消息要排到最上面, 代码如下:
-(void)getData{ NSArray *chatListArr = [[EaseMob sharedInstance].chatManager loadAllConversationsFromDatabaseWithAppend2Chat:YES]; [self.dataSourceArr removeAllObjects]; [self.dataSourceArr addObjectsFromArray:[self compareDataSource:chatListArr]];}-(NSMutableArray *)compareDataSource:(NSArray *)array{ NSMutableArray *result = nil; NSArray *sort = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { EMMessage *message1 = [obj1 latestMessage]; EMMessage *message2 = [obj2 latestMessage]; if (message1.timestamp > message2.timestamp) { return NSOrderedAscending; } else { return NSOrderedDescending; } }]; result = [NSMutableArray arrayWithArray:sort]; return result;}
转载地址:http://bntmb.baihongyu.com/