Ios 所选图像未按顺序显示

Ios 所选图像未按顺序显示,ios,uitableview,swift,parse-platform,Ios,Uitableview,Swift,Parse Platform,我正在构建一个投票/Instagram类型的应用程序,其中用户选择一张非用户制作的照片,并将其推送到时间线中 我已经建立了选择屏幕和按钮,以及时间线。出于某种原因,我只能猜测它与保存PFObject(所选照片)的时间顺序有关,时间线显示的是当前所选照片之前所选的照片 下面是“SelectScreenVC”上的“选择”按钮: @IBAction func selectNext(sender: UIButton) { let imageData = UIImagePNGRepresentat

我正在构建一个投票/Instagram类型的应用程序,其中用户选择一张非用户制作的照片,并将其推送到时间线中

我已经建立了选择屏幕和按钮,以及时间线。出于某种原因,我只能猜测它与保存PFObject(所选照片)的时间顺序有关,时间线显示的是当前所选照片之前所选的照片

下面是“SelectScreenVC”上的“选择”按钮:

@IBAction func selectNext(sender: UIButton) {
    let imageData = UIImagePNGRepresentation(lgImgURL.image)
    let imageFile = PFFile(name: "\(cName.text!)", data: imageData)

    var user = PFUser.currentUser()
    user["nextChosen"] = "\(cName.text!)"
    user["imageFile"] = imageFile

    var userNextPhoto = PFObject(className: "UserNextPhoto")

    userNextPhoto["username"] = PFUser.currentUser().username
    userNextPhoto["cName"] = "\(cName.text!)" as String
    userNextPhoto["imageFile"] = imageFile

    userNextPhoto.saveInBackgroundWithBlock { (success: Bool!, error: NSError!) -> Void in
        if error == nil {
            println("User \(PFUser.currentUser().username) chose: \(self.cName.text!)")
        } else {
            println(error)
        }
    }
    self.navigationController?.popToViewController(timeLineVC, animated: true)
}

这就是时间线。我有创建时间线数组的函数,我跳过了一些TableView方法,除了CellForRowatineXpath

class TimeLineViewController: UITableViewController {

var timelineData:NSMutableArray = NSMutableArray()

override func viewDidLoad() {
    super.viewDidLoad()
    loadData()
}

func loadData() {
    timelineData.removeAllObjects()

    var findTimelineData:PFQuery = PFQuery(className: "UserNextPhoto")


    findTimelineData.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {
            for object in objects {
                self.timelineData.addObject(object)
            }
        } else {
            NSLog("Error: %@ %@", error, error.userInfo!)
        }

        let array: NSArray = self.timelineData.reverseObjectEnumerator().allObjects
        self.timelineData = NSMutableArray(array: array)

        self.tableView.reloadData()
    }

}

 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell =     tableView.dequeueReusableCellWithIdentifier("timelineCell", forIndexPath:    indexPath) as TimelineTableViewCell
    let userNextPhoto:PFObject = self.timelineData.objectAtIndex(indexPath.row) as PFObject

    let nextPhoto:PFObject = self.timelineData.objectAtIndex(indexPath.row) as PFObject
    cell.usernameLabel.text = PFUser.currentUser().username
    cell.cName.text = (userNextPhoto["cName"] as String)
    return cell
}

我感谢任何帮助或见解

事情就是这样:当您弹出视图控制器时,新照片尚未完成上传。您可以等待照片完成上传(这不是一个很好的用户体验),也可以将对新保存对象的引用传递回弹出的视图控制器,该控制器可以在不等待上传完成的情况下立即显示新照片。

您是否尝试添加
[findTimelineData orderByAscending:@“createdAt”]
就在启动解析查询之前(findTimelineData.findObjectsInBackgroundWithBlock行)?是的,我尝试了这个,但是得到了相同的结果。谢谢你的建议Hector谢谢你的洞察力。所以出于好奇,因为照片没有加载函数自动加载数组中的下一项?我这样问是因为此时我正在测试照片的用户名、时间戳和名称,甚至还没有尝试显示照片。另外,在弹出ViewController之前,如何将引用传递回?再次感谢你的帮助。