好的,所以我有一个名为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个帖子的情况下循环使用。请问任何问题,我在这里回答。