您的位置:首页 > 移动开发 > IOS开发

iOS对象数组排序

2016-04-25 14:40 519 查看
个人理解及总结

用到方法

// 这里的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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: