Swift: how to get Parse's many user's name and photo

后端 未结 1 1851
温柔的废话
温柔的废话 2020-12-22 05:57

I have a bunch of users on my message app, fetching my \"messages\" class I need to get sender\'s first and last name and profile image from their Parse profile on my app in

相关标签:
1条回答
  • 2020-12-22 06:18

    You can use 'includeKey' to access pointer values of related classes

    findTimeLineDataQuery.includeKey("sender")
    
    findTimeLineDataQuery.findObjectsInBackgroundWithBlock({
        (objects : [AnyObject]?, error : NSError?) in
    
        if let objects = objects where error == nil {
    
            var chats:(timelinechatsData: [String], chatsDate: [NSDate]) = ([], []) //date might be NSDate
            var message: (messageObjts: [String], messageSender: [String]) = ([], [])
    
            var datesToString: [String] {
                 get {
                     var stringDates:[String] = []
                     let formatter = NSDateFormatter()
                     formatter.dateFormat = "dd-MM-yyyy" //change the format as you wish
                     for date in dates {
                         stringDates.append(formatter.stringFromDate(date))
                     }
                     return stringDates
                 }
            }
    
            for singleObject in objects {
    
                if let user = singleObject["sender"] as! PFObject {
                    let first_name = user["first_name"] as! String
                    let last_name = user["last_name"] as! String
    
                    //Cast it to how you saved it. I can't see it from the picture so I assumed you saved it as NSData
                    let picture = user["picture"] as! NSData
                    picturesProfilesArray.append(picture)
                    //once you fetch the user data, you can save it in a dictionary or however you want and later call it from cellForRowAtIndex
                }
    
    
    
                if let stringData = singleObject["message"] as? String {
    
                    chats.timelinechatsData.append(stringData)
    
                    if let messageDate = singleObject.createdAt {
                        chats.chatsDate.append(messageDate)
                    }
                }
    
                //new
                if let messageObject = singleObject["messageObject"] as? String {
                    message.messageObjts.append(messageObject)
                }
    
                //new senderNickname
                if let messageSender = singleObject["senderNickname"] as? String {
                    message.messageSender.append(messageSender)
                }
            }
    
            //update self
            dispatch_async(dispatch_get_main_queue()) {
    
                self.timelineChatsDataArray += chats.timelinechatsData
                self.chatsDateArray += datesToString
                self.messageObjectArray += message.messageObjts
                self.messageSenderArray += message.messageSender
    
                self.tableView.reloadData()
            }
        }
    })
    
    0 讨论(0)
提交回复
热议问题