【问题标题】:Retrieving Parse Objects in order by creation swift通过创建快速检索解析对象
【发布时间】:2015-12-13 05:06:31
【问题描述】:

下面的代码是从 parse.com 检索的。代码工作正常,但没有按顺序查询我的数据。谁能解释一下原因?

 func loadData(){
    let findDataParse = PFQuery(className: "JobListing")
    findDataParse.whereKey("user", equalTo: PFUser.currentUser()!)
    findDataParse.orderByAscending("createdAt") 
    findDataParse.findObjectsInBackgroundWithBlock{
        (objects: [PFObject]?, error: NSError?) -> Void in
        if (error == nil) {
            for object in objects! {
               let userImageFile = object["ImageOne"] as! PFFile
                let userImageFile1 = object["ImageTwo"] as! PFFile
                let userImageFile2 = object["ImageThree"] as! PFFile
                userImageFile.getDataInBackgroundWithBlock {
                    (imageData: NSData?, error: NSError?) -> Void in
                    let listingImage1 = UIImage(data:imageData!)
                    userImageFile1.getDataInBackgroundWithBlock {
                        (imageData1: NSData?, error1: NSError?) -> Void in
                        let listingImage2 = UIImage(data:imageData1!)
                        userImageFile2.getDataInBackgroundWithBlock {
                            (imageData2: NSData?, error1: NSError?) -> Void in
                            let listingImage3 = UIImage(data:imageData2!)
                let offers =  Information(objectIDParam: object.objectId!, titleOfProjectParam: object["TitleOfProject"] as! String,  categoryParam: object["Category"] as! String, viewsParam: object["Views"] as! String, image1Param: listingImage1!, image2Param: listingImage2!, image3Param: listingImage3!)

                            self.arrayOfOffers.append(offers)
                            for interests in object["InterestsArray"] as! NSArray{
                                self.arrayOfInterests.append(interests as! String)
                            }
                            self.i++
                            self.tableView.reloadData()
                        }}}}}}}

【问题讨论】:

    标签: ios swift parse-platform pfquery


    【解决方案1】:

    我会这样做:

    • 创建mutableArray
    • 同时获取所有项目
    • request 完成后,将object 添加到mutableArray 并检查mutableArray.count == numberOfRequests
    • 所有下载完成后,对mutableArray 进行排序

    这会更快+更容易理解发生了什么。

    【讨论】:

    • 我创建了可变数组,但如何同时获取所有项目?
    • 您可以从嵌套的getDataInBackgroundWithBlocks 中提取userImageFile1userImageFile2 并在与userImageFile 相同的范围级别运行它们,并在每个block 中将您的项目添加到@ 987654332@ 并进行逻辑检查
    猜你喜欢
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多