我在我的iPhone应用程序中使用Twilio聊天SDK。我试图根据最后的消息时间戳排序所有频道列表,有没有办法实现这一点?请建议。
Twilio开发者传道者在这里。
SDK目前没有办法对渠道进行排序。最好的办法是将所有通道加载到一个阵列中并自行排序。
正如@philnash所说,目前SDK没有办法对频道进行排序。这就是我在javascript
中自己排序的方式。在javascript SDK中,该频道具有我用于排序的最后一条消息的时间戳。无需获取最后一条消息,然后查找它的时间戳。
const sortedChannels = channels.sort(function (a, b) {
/** Sort based on the last message if not, consider the last update of the channel */
return new Date(b.lastMessage ? b.lastMessage.timestamp : b.dateUpdated) - new
Date(a.lastMessage ?
a.lastMessage.timestamp :
a.dateCreated);
});
我解决了这个问题:
func sortChannels() {
let sortSelector = #selector(NSDate.compare(_:))
let descriptor = NSSortDescriptor(key: "dateUpdatedAsDate", ascending: false, selector: sortSelector)
channels!.sort(using: [descriptor])
}