一尘不染

无法使用类型为(((_)-> _)'的参数列表调用'filter'

swift

听起来很荒谬,但是我无法修复这段代码:

self.runningScripts.filter({ $0 != scriptRunner })

无论我如何写闭包,我总是会遇到此错误:

无法使用类型为’ ((_) -> _)‘ 的参数列表调用’filter ‘

runningScripts 定义如下:

var runningScripts = [ScriptRunner]()

并且ScriptRunner是Swift类(不继承自NSObject)

我在许多其他地方都使用了几乎相同的产品,而没有出现问题。有什么建议?


阅读 285

收藏
2020-07-07

共1个答案

一尘不染

如果您不ScriptRunner符合以下条件,则会收到该错误Equatable

class ScriptRunner : Equatable {
    // the rest of your implementation here
}

func ==(lhs: ScriptRunner, rhs: ScriptRunner) -> Bool {
    return ... // change this to whatever test that satisfies that lhs and rhs are equal
}
2020-07-07