【问题标题】:reload tableview does not show all objects重新加载 tableview 不显示所有对象
【发布时间】:2016-01-26 22:23:08
【问题描述】:

在我的代码中有一个循环进入一个数组并将这个数组中的所有对象添加到另一个数组中。第二个 Array 中的对象是 tableview 中显示的内容。所以每次我通过循环时,我都会将对象附加到第二个数组中。在那个循环之后,我重新加载了 tableview,但有时它不显示所有对象?!我认为这是因为即使附加过程尚未完成,它也会开始执行重新加载代码?完成其他所有操作后,如何重新加载 tableview? 这是我的代码,我正在使用 Parse,所以查询来自解析服务器并返回一个数组。 matesIdsAndNames 是一个字典,其余的是数组。

if mateUserObject.isEmpty == false{

    for mateId in mateUserObject{



        let date = NSDate()
        let dateInt = date.timeIntervalSince1970

        let query = PFQuery(className: "calendarEvents")
        query.whereKey("createdBy", equalTo: mateId)
        query.whereKey("StartDate", lessThan: dateInt)
        query.whereKey("EndDate", greaterThan: dateInt)
        query.cachePolicy = .NetworkOnly
        query.findObjectsInBackgroundWithBlock({ (objects:[PFObject]?, error:NSError?) -> Void in

            if error != nil{
                print(error)
            }else{

                if objects?.isEmpty == true{
                    self.freeMateIds.append(mateId.objectId!)
                    print(self.freeMateIds)
                    if self.mateUserObject.last == mateId{


                        if self.freeMateIds.isEmpty == false{


                            for freeMate in self.freeMateIds{

                                let oneFreeMate = self.matesIdsAndNames[freeMate]
                                self.freeMateNames.append(oneFreeMate!)
                                print(self.freeMateNames)
                            }

                        }
                        self.MatesTableView.reloadData()

                    }

                }

            }


        })



    }


}

}

【问题讨论】:

  • 我强烈建议您编辑这个问题并添加一些代码。如果您的问题更易于阅读并且有特定的代码,那么您将 1)获得更多关注,2)获得更好的答案。
  • 我会通过发布你的代码的相关部分来改进这个问题(当然不是你的整个源文件)
  • 阅读 Grand Central Dispatch (GCD),您将找到问题的答案...和/或发布问题,显示您所指的代码
  • 我刚刚编辑了我的帖子

标签: ios swift parse-platform tableview


【解决方案1】:

您正在从多个后台进程向数组添加对象,但 swift 数组不是线程安全的。一种选择是谷歌“快速线程安全数组”并使用提供的一些示例代码。

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多