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

idm*_*ean 13 swift

听起来很荒谬,但我无法解决这段代码:

self.runningScripts.filter({ $0 != scriptRunner })
Run Code Online (Sandbox Code Playgroud)

无论我怎么写闭包,我总是得到这个错误:

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

runningScripts 定义如下:

var runningScripts = [ScriptRunner]()
Run Code Online (Sandbox Code Playgroud)

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

我在很多其他地方使用的几乎没有问题.有什么建议?

Rob*_*Rob 7

如果您不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
}
Run Code Online (Sandbox Code Playgroud)