Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 重新加载tableview不会显示所有对象_Ios_Swift_Parse Platform_Tableview - Fatal编程技术网

Ios 重新加载tableview不会显示所有对象

Ios 重新加载tableview不会显示所有对象,ios,swift,parse-platform,tableview,Ios,Swift,Parse Platform,Tableview,在我的代码中有一个循环,它指向一个数组,并将该数组中的所有对象添加到另一个数组中。第二个数组中的对象是tableview中显示的对象。因此,每次通过循环时,我都会将对象附加到第二个数组中。循环之后,我重新加载tableview,但有时它不会显示所有对象?!我认为这是因为它开始重新加载代码,即使追加过程还没有完成,代码也会被执行?在完成所有其他操作后,如何重新加载tableview? 这是我的代码,我正在使用Parse,因此查询来自一个Parse服务器,并返回一个数组。matesIdsAndNam

在我的代码中有一个循环,它指向一个数组,并将该数组中的所有对象添加到另一个数组中。第二个数组中的对象是tableview中显示的对象。因此,每次通过循环时,我都会将对象附加到第二个数组中。循环之后,我重新加载tableview,但有时它不会显示所有对象?!我认为这是因为它开始重新加载代码,即使追加过程还没有完成,代码也会被执行?在完成所有其他操作后,如何重新加载tableview? 这是我的代码,我正在使用Parse,因此查询来自一个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()

                    }

                }

            }


        })



    }


}

}

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

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