2017-11-07 2 views
2

내가 메시징 시스템과 3 가지를 표시해야 대화 목록을 개발하고 있어요의 마지막 메시지를 표시합니다 :스위프트 parse.com 메시징 시스템이 발신자/수신자

(나 일명 현재 사용자 메시지를 보낸 누구의

마지막 메시지, 또는 다른 사용자) 다른 사용자의 이름

내가 백 엔드 parse.com를 사용하는 다른 사용자의 사진

할 sentMessagesQuery = PFQuery (클래스 이름 : Message.parseClassName()) sentMessagesQuery.whereKey ("에서 ", 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

내림차순으로 정렬 한 이후의 마지막 메시지가 될 쿼리의 첫 번째 개체를 반환 할 때 을 사용할 수 있습니다.

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

    } 
+0

thx하지만 나는 모든 freind와 대화의 마지막 메시지를 구하지 않을 것입니다. –