У меня было это после переключения со Swift 2 на Swift 3. Приведенное ниже описание является специфическим, но вы можете видеть, что общий случай охватывает множество возможных ошибок.
У меня был метод с именем delete
в моем подклассе SKNode
.
func delete(thing: SomeType)
Уже есть метод delete
на UIResponder
, но мой метод (непреднамеренно) перегрузил его, поэтому он работал нормально. Обновление до Swift 3 изменило его на:
func delete(_ thing: SomeType)
Все еще работает. Но затем я решил Swift3ify и сделал параметр обязательным:
func delete(thing: SomeType)
, который работал бы нормально, если бы я вспомнил об обновлении вызывающей стороны, но я этого не сделал, теперь вызывающая сторона вызывает метод delete
без параметров в UIResponder
с неверным типом аргументов.
Это, очевидно, может произойти с любым из длинного списка стандартных методов в SKNode
(и, вероятно, UIView
), которые принимают Any
в качестве аргумента и, таким образом, пройдут фазу компиляции, но затем будут перепадать при вызове .