Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Twilio:根据上次消息时间对通道进行排序_Ios_Twilio_Twilio Api - Fatal编程技术网

Ios Twilio:根据上次消息时间对通道进行排序

Ios Twilio:根据上次消息时间对通道进行排序,ios,twilio,twilio-api,Ios,Twilio,Twilio Api,我正在iPhone应用程序中使用Twilio聊天SDK。 我正在尝试根据最后一条消息的时间戳对所有频道列表进行排序,有什么方法可以做到这一点吗?请推荐。这里是Twilio开发者福音传道者 SDK目前没有对通道进行排序的方法。您最好将所有频道加载到一个数组中,然后自己排序。这里是Twilio developer evangelist SDK目前没有对通道进行排序的方法。你最好的办法是将所有频道加载到一个数组中,然后自己对它们进行排序。正如@philnash所说,目前SDK无法对频道进行排序。这就是

我正在iPhone应用程序中使用Twilio聊天SDK。
我正在尝试根据最后一条消息的时间戳对所有频道列表进行排序,有什么方法可以做到这一点吗?请推荐。

这里是Twilio开发者福音传道者


SDK目前没有对通道进行排序的方法。您最好将所有频道加载到一个数组中,然后自己排序。

这里是Twilio developer evangelist


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);
 });

正如@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])
    }
编辑:
Twilio文档有点混乱。也许更好的解决方案是使用
lastMessageDate
,因为
dateupdatedate
似乎适用于其他内容

NSSortDescriptor(key: "lastMessageDate", ascending: false, selector: sortSelector)

我是这样解决问题的:

    func sortChannels() {
        let sortSelector = #selector(NSDate.compare(_:))
        let descriptor = NSSortDescriptor(key: "dateUpdatedAsDate", ascending: false, selector: sortSelector)
        channels!.sort(using: [descriptor])
    }
编辑:
Twilio文档有点混乱。也许更好的解决方案是使用
lastMessageDate
,因为
dateupdatedate
似乎适用于其他内容

NSSortDescriptor(key: "lastMessageDate", ascending: false, selector: sortSelector)

你能告诉我我是如何知道频道最后一次留言的时间的,我会把它分类的。我们可以在添加消息时更新频道属性吗?您需要消息列表中的最后一条消息来获取时间。至于更新频道属性,您可以在添加消息的同时使用频道对象的方法进行更新。感谢您的快速支持,但我正在尝试相同的方法,但得到错误信号。sdk.domain.error error 102。ios sdk,同时设置频道属性这听起来像是一个新问题。你能问一个关于堆栈溢出的新问题,包括你正在使用的代码和错误吗?确保它被标记为“twilio”,我会找到它。@philnash你能检查一下我为属性问题添加了新问题吗?你能告诉我如何知道频道中最后一条消息的时间,以便我对它进行排序。我们可以在添加消息时更新频道属性吗?您需要消息列表中的最后一条消息来获取时间。至于更新频道属性,您可以在添加消息的同时使用频道对象的方法进行更新。感谢您的快速支持,但我正在尝试相同的方法,但得到错误信号。sdk.domain.error error 102。ios sdk,同时设置频道属性这听起来像是一个新问题。你能问一个关于堆栈溢出的新问题,包括你正在使用的代码和错误吗?确保它被标记为“twilio”,我会找到它。@philnash你能检查一下我为属性问题添加了新问题吗