Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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 正在尝试删除swift中从firebase检索的数组中的重复值_Ios_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Ios 正在尝试删除swift中从firebase检索的数组中的重复值

Ios 正在尝试删除swift中从firebase检索的数组中的重复值,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我试图从firebase dict中检索名为memberJob的值。检索后,目标是删除重复项,在TableView中显示唯一值。 问题是jobs是空的,但是memberJob在循环时实际具有值 也许有人能帮我!:) 您可能只是缺少了在getJobs方法附加了jobs之后应该重新加载UITableView的部分 func getJobs(for user: User, completion: @escaping ([MemberJobsStruct]) -> Void) { //..

我试图从firebase dict中检索名为
memberJob
的值。检索后,目标是删除重复项,在TableView中显示唯一值。 问题是
jobs
是空的,但是
memberJob
在循环时实际具有值

也许有人能帮我!:)


您可能只是缺少了在
getJobs
方法附加了
jobs
之后应该重新加载
UITableView
的部分

func getJobs(for user: User, completion: @escaping ([MemberJobsStruct]) -> Void) {
    //...
    ref.observe(DataEventType.value, with: { snapshot in
        for case let child as DataSnapshot in snapshot.children {
            //...
        }
        DispatchQueue.main.async {
            self.tableView.reloadData()
        }
    })
}

更新:用于使用扩展方法从数组中获取唯一对象。

您在哪里使用
removeDuplicates
?尚未。。。因为数组本身仍然是空的。该功能正在运行。我只需要得到工作安排如果你不想在数据库中重复,更有效的方法是在添加记录之前检查重复项。不,不,重复项是非常需要的!!只是在这个vc中,我希望人们选择所需的工作数量。作业由不同的团队成员配置文件获取。但是,如果有三个摄影师,很明显,1个摄影师就足以显示,因此可以选择数量谢谢!实际上,它现在起作用了,我想删除重复的变量,并将唯一的变量存储在一个名为
soloJobs
的新数组中,因此只在tableview中显示这些变量。但实际上它不起作用。我把问题中的代码改成了新的?还有其他帮助吗?:)检查我上面发布的更新,以从阵列中删除重复项。使用它,你就会得到你的结果。真奇怪,我就是不明白。为什么我甚至不能从
作业
中创建一个名为
soloJobs
的新数组,而不删除重复的值?我尝试了几乎所有的可能性。。。现在在我问题的最新领域,这是我的方法,但是的,没有任何效果。。。
  func getJobs(for user: User, completion: @escaping ([MemberJobsStruct]) -> Void) {
        
         var jobs: [String] = []

         let ref = Database.database().reference().child("team").child(user.uid)
        
                 ref.observe(DataEventType.value, with: { snapshot in

                    for case let child as DataSnapshot in snapshot.children {
                    guard let value = child.value as? [String: Any] else {
                        return completion ([])
                        
                }
                        let memberJob = value["memberJob"] as! String
                        jobs.append(memberJob)
                        DispatchQueue.main.async {
                                   self.tableView.reloadData()
                               }
                    }
                 })
            soloJobs = jobs
        
        
      

           }

func getJobs(for user: User, completion: @escaping ([MemberJobsStruct]) -> Void) {
    //...
    ref.observe(DataEventType.value, with: { snapshot in
        for case let child as DataSnapshot in snapshot.children {
            //...
        }
        DispatchQueue.main.async {
            self.tableView.reloadData()
        }
    })
}