我正在开发一个消息传递系统,对话列表必须显示三件事:
发送邮件的人的最后一条消息(我是当前用户或其他用户) 其他用户的名称 其他用户的图片
我使用parse.com作为后端
let sentMessagesQuery = PFQuery(className:Message.parseClassName()) sentMessagesQuery.whereKey(" from",equalTo:PFUser.current()!)
let receivedMessagesQuery = PFQuery(className: Message.parseClassName())
receivedMessagesQuery.whereKey("to", equalTo: PFUser.current()!)
let query = PFQuery.orQuery(withSubqueries: [sentMessagesQuery, receivedMessagesQuery])
query.includeKey("from")
query.includeKey("to")
query.order(byDescending: "createdAt")
query.findObjectsInBackground(block: {(objects: [PFObject]!, error: Error!)->Void in
if(error == nil){
for object in objects as! [Message]{
self.messageArray.add(object)
}
self.messagerieTable.reloadData()
}else{
print("error")
}
})
当前查询显示所有消息。 THX
答案 0 :(得分:0)
您可以使用getFirstObjectInBackground
返回查询的第一个对象,该对象将是您使用降序排序后的最后一条消息。
query.getFirstObjectInBackground { (parseObject, error) in
guard error == nil else {
print(error)
return
}
guard let message = parseObject as? Message else { return }
self.messageArray.add(message)
self.messagerieTable.reloadData()
}