循环遍历数组以确定将包含哪个主数组

时间:2017-05-04 02:36:35

标签: ios arrays swift firebase firebase-realtime-database

好的,所以我有一个名为posts []的数组,它是一个名为Post的nsobject。我正在创建一个函数,确保某个选定并保存的postID:String将保存在一个数组中,然后当app重新启动时,这些帖子不会包含在主Feed中。用户根据他们删除的内容选择他们想要在他们的Feed中看到的内容,但不删除它(意味着图像在海报配置文件下)。但我的主要问题是我从firebase获取帖子需要循环遍历selectedArray [" -postId"等等]并检查是否有帖子值:postID,author,pathToImage(通过以下循环用户帖子)不等于selectedArray中的一个postID字符串。我创建了一种方法来解决这个问题(我想),每个循环都有一个。循环如下(请注意我注释了循环和我尝试的内容)

ref.child("posts").queryOrderedByKey().observeSingleEvent(of: .value, with: { (snap)  in
    if snap.value != nil {
        let postSnap = snap.value as! [String: AnyObject]
        for (_,post) in postSnap {
            if let userID = post["userID"] as? String {
                for each in self.following {
                    if each == userID {
                        var posst = Post()
                        //if let array = UserDefaults.standard.object(forKey: "selected") as? [String] {                                
                        //for each1 in array {
                        // if posst.postID != each1 {
                        if let author = post["author"] as? String, let pathToImage = post["pathToImage"] as? String, let postID = post["postID"] as? String {
                            posst.author = author
                            posst.pathToImage = pathToImage
                            posst.postID = postID                                    
                            self.posts.append(posst)
                        }  
                    } else {
                        print("nope")
                    }
                }
            }
        }
    }
})

好吧,有点很多代码,但我希望你能看到我的目标,我已经创建了一个函数来获取所选图像的postID,放入选中的:Array,并保存数组。我的问题是我将8张图片发布到firebase并且我运行了代码并且选择了4个postIds,它生成了32个图像,for循环根据每个循环复制帖子4次。我没有经验,我不会撒谎,但如果所选阵列中有4个项目,我应该如何在不为每个帖子创建4个帖子的情况下循环使用。请问任何问题,我在这里回答。

0 个答案:

没有答案