如果对象的字符串匹配单独数组中的字符串,则删除对象

时间:2017-05-08 04:10:30

标签: arrays swift string

我有一个带有四个字符串的nsobject类

class Post: NSObject {
    var author: String!
    var postID: String!
    var pathToImage: String!
    var userID: String!
}

我还有一个单独的类视图控制器,它具有从firebase获取帖子的功能。我有一个名为posts = [Post]()的数组,它由一个单独的函数填充,该函数通过firebase并抓取每张照片的数据。我还有一个名为removeArray的数组,它是字符串数组,字符串是某些帖子的postID。现在这是我的问题,我正在尝试遍历removeArray,检查removeArray中的每一个是否posts.postID中的每一个并检查它们是否相等。然后我要删除posts.postID帖子中的每一个,或者我创建一个新帖子 - 帖子 - 帖子removeArray中的帖子ID。这是我的代码现在不起作用,它只是保持帖子不变。

if posts != nil {
    if var array = UserDefaults.standard.object(forKey: "removeArray") as? [String]  {
        for each in posts {
            for one in array {
                if one == each.postID {
                    new.append(each)
                }
            }
        }

        return self.posts.count
    }
}

因此,如果你知道如何在数组中取一个字符串,检查该字符串是否eqaul为objects.postID数组中的字符串,如果相等,则从数组中删除该对象。我试图研究一种过滤它的方法,但到目前为止还没有。请给我一些反馈。谢谢 我的问题= http://imgur.com/a/m5CiY

1 个答案:

答案 0 :(得分:0)

var posts = [p1,p2,p3,p4,p5]
let array = ["aaa","bbb"]
var new:Array<Post> = []

for each in posts {
    for one in array {
        if one == each.postID {
            new.append(each)
        }
    }
}

print("This objects should be remvoed:  \(new)")
posts = Array(Set(posts).subtracting(new))
print("After removing matching objects: \(posts)")