我对按最新活动对组频道进行排序有同样的要求,并在频道数组上使用了 Sort() 方法来解决这个问题。
一旦 [SBDGroupChannel] 的通道数组被填充并且在重新加载 tableview 之前,对数组进行排序。
这将我的群组频道按最新的排序。
self.groupChannelListQuery = SBDGroupChannel.createMyGroupChannelListQuery()
self.groupChannelListQuery?.limit = 20
self.groupChannelListQuery?.order =
SBDGroupChannelListOrder.latestLastMessage
self.groupChannelListQuery?.loadNextPage(completionHandler: { (channels, error) in
if error != nil {
DispatchQueue.main.async {
self.refreshControl?.endRefreshing()
}
return
}
self.channels.removeAll()
self.cachedChannels = false
for channel in channels! {
self.channels.append(channel)
}
DispatchQueue.main.async {
if self.channels.count == 0 {
self.tableView.separatorStyle =
UITableViewCellSeparatorStyle.none
self.noChannelLabel.isHidden = false
}
else {
self.tableView.separatorStyle =
UITableViewCellSeparatorStyle.singleLine
self.noChannelLabel.isHidden = true
}
**self.channels.sort(by: { (channelA, channelB) -> Bool in
return channelA.createdAt > channelB.createdAt
})**
self.refreshControl?.endRefreshing()
self.tableView.reloadData()
}
})