Swift 3:Array.contains(customObject)

时间:2017-01-17 06:17:16

标签: ios swift3

我正在尝试实现下面的if块:

    if loggedInUser.following.contains(userToView) {

    }

其中loggedInUser.following是自定义User类的数组,userToView是User类的单个实例。

class User {
    ....
}

然而,loggedInUser.following.contains(userToView)引发了以下错误:

无法将'User'类型的值转换为预期的参数类型'(User)throws - >布尔'

我的印象是我需要实现某种功能,以确定两个用户是否相等,但我不知道如何实现这样的功能。任何帮助将非常感激;提前谢谢你!

2 个答案:

答案 0 :(得分:1)

哟可以使用下面的代码

if (loggedInUser.following as NSArray).contains(userToView) {

}

答案 1 :(得分:1)

谢谢大家的建议。

创建以下功能并实施“Equatable”协议后,一切都按预期工作:

class User: Equatable {
    //...
    var id = Int() //Unique Identifier
    //...
}

func ==(lhs: User, rhs: User) -> Bool {
    return lhs.id == rhs.id
}

在实施上述代码后,我可以毫无问题地调用以下内容:

if loggedInUser.following.contains(userToView) {
    ...
}