【发布时间】:2017-01-17 06:17:16
【问题描述】:
我正在尝试实现如下所示的 if 块:
if loggedInUser.following.contains(userToView) {
}
其中loggedInUser.following 是自定义User 类的数组,userToView 是User 类的单个实例。
class User {
....
}
但是,loggedInUser.following.contains(userToView) 抛出如下错误:
无法将“User”类型的值转换为预期的参数类型“(User) throws -> Bool”
我的印象是我需要实现某种功能来确定两个用户是否相等,但我不知道如何实现这样的功能。任何帮助将非常感激;提前谢谢你!
【问题讨论】:
-
要使用 contains,您需要使您的 User 类符合 Equatable 协议
-
class User: Equatable { let name: String required init(name: String) { self.name = name } } func ==(lhs: User, rhs: User) -> Bool { return lhs.name == rhs.name } -
let users = [User(name: "a"),User(name: "b")]和users.contains(User(name: "z")) // false -
谢谢,在谷歌上搜索了公平协议后,我能够沿着黄砖路走;这导致我实现了您刚刚建议的功能