列表里面所以,我有以下对象境界订单对象日期
class Chat: Object {
dynamic var chatID = ""
var participants = List<Friend>()
var messages = List<Message>()
/// Set the primary key
override static func primaryKey() -> String? {
return "chatID"
}
}
class Message: Object {
dynamic var chat: Chat!
dynamic var from: Friend!
dynamic var message = ""
dynamic var date = Date()
dynamic var isRead: Bool = false
}
现在,我获得已创建的所有聊天记录的列表。当我有聊天时,我希望能够根据最后一条消息对它们进行排序。所以我需要做的是按消息列表中的日期排序聊天列表。
包含具有最新日期的消息的聊天需要位于顶部,依此类推。
我试图订购列表如下 realmManager.chatResults.sorted(byKeyPath: "messages.date", ascending: false)
但引发以下错误
终止应用程序由于未捕获的异常“的排序无效的关键路径”, 原因:“不能排序上” messages.date':不支持排序 包含多对多关键的关键路径。'
我目前无法弄清楚如何解决这个问题。有人知道我如何才能实现正确的排序行为吗?
你会得到什么错误?初看起来,如果chatResults是Chat类型的话,它看起来就像一个错字。 'messages'没有'date'属性,因为它是一个列表而不是一个'Message'对象。 –
@DávidPásztor我更新了答案,包括它抛出的错误 – NoSixties