Swift parse.com消息系统显示发送者/接收者的最后消息

时间:2017-11-07 10:42:33

标签: swift parse-platform

我正在开发一个消息传递系统,对话列表必须显示三件事:

发送邮件的人的最后一条消息(我是当前用户或其他用户) 其他用户的名称 其他用户的图片

我使用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

1 个答案:

答案 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()

    }