Ios 按对象唯一id筛选
好的,在我的应用程序中,有人正在参加一个活动。在参加活动的人中,有些人可能在我的朋友名单上。每个用户都有一个唯一的用户id来标识他们。我试图用一种快速的方式做事情,并使用过滤功能,但我有一点小麻烦。我试图弄清楚如何筛选出那些参加活动的非我朋友的用户,这样我就只能得到一份参加活动的朋友的名单Ios 按对象唯一id筛选,ios,swift,Ios,Swift,好的,在我的应用程序中,有人正在参加一个活动。在参加活动的人中,有些人可能在我的朋友名单上。每个用户都有一个唯一的用户id来标识他们。我试图用一种快速的方式做事情,并使用过滤功能,但我有一点小麻烦。我试图弄清楚如何筛选出那些参加活动的非我朋友的用户,这样我就只能得到一份参加活动的朋友的名单 @objc func filterUsers(){ UserService.following { (friends) in guard let users =
@objc func filterUsers(){
UserService.following { (friends) in
guard let users = self.users else {
return
}
self.results = users.filter { friends.contains($0) }
}
}
这就是我到目前为止所得到的,它没有返回任何东西,因为如果你对对象进行了复制,那么一切都不会是一样的。我最终想通过uid进行比较,所以,我想知道是否有可能使用两个参数进行过滤,这样我就可以使用速记$0.uid和$1.uid对两者进行比较?如果没有,谁能帮我用一些语法来解决这个问题。使用contains(where:)
而不是contains(:)
。以下是一个例子:
struct User{
var uid : Int
}
let users = [User(uid:1),User(uid:2),User(uid:3),User(uid:4),User(uid:5)]
let friends = [users[0],users[2],users[4],User(uid: 6),User(uid: 7)]
let results = users.filter{ (user) -> Bool in
return friends.contains(where:{$0.uid == user.uid})
}