звучит смешно, но я не могу не исправить этот кусок кода:не может ссылаться на «фильтр», со списком аргументов типа «((_) -> _)»
self.runningScripts.filter({ $0 != scriptRunner })
Независимо от того, как я написать замыкание Я всегда получаю эту ошибку:
Cannot invoke 'filter' with an argument list of type '
((_) -> _)
'
runningScripts
определяется следующим образом:
var runningScripts = [ScriptRunner]()
и ScriptRunner
- класс Swift (не наследуется от NSObject)
Я использую почти то же самое во многих других местах без проблем. Какие-либо предложения?
... или вы можете сделать это в подкласс NSObject (который соответствует «Equatable»). Обнаружил это именно в этот момент. В любом случае, благодарю Вас! (И на самом деле я хотел использовать '! ==' ...) – idmean
Я был бы осторожен с этой техникой 'NSObject'. Это делает '==' более похожим на '===', если вы не переопределяете 'isEqual' чем-то более логичным (или реализуете' == 'себя, и в этом случае просто соответствовать' Equatable' проще). – Rob
Спасибо за предупреждение. Я просто понял, что после написания комментария, поэтому я добавил «* И на самом деле я хотел использовать! == ... *» – idmean