我希望调用另一个类中声明的ViewController类中的方法。
在我的Animator课程中:
class Animator {
func animate(view:View!, scrollView:UIScrollView!) {
//animation code
}
}
但是当我在View Controller类中调用该方法时
Animator.animate(viewA, scrollView:scrollView)
我收到 "Extra Argument 'scrollView' in call
错误
这很简单,我对此错误的原因感到困惑。
答案 0 :(得分:3)
您正在调用animate
,就像它是一个类方法一样。如果您希望它是类方法,则需要执行以下操作:
class func animate(view:View!, scrollView:UIScrollView!)
如果您希望它是实例方法,请首先创建Animator
的实例,然后在实例上调用animate
:
a = Animator()
a.animate(view, scrollView:scrollView)
答案 1 :(得分:0)
那应该是UIView
而不是View
吗?
func animate(view:UIView!, scrollView:UIScrollView!) { ... }
你在一个类上调用它,所以它需要是一个类方法。
class func animate(view:UIView!, scrollView:UIScrollView!) { ... }
而且我也相信呼叫需要有一个命名参数:
Animator.animate(view: viewA, scrollView:scrollView)
Swift中的错误消息可能会产生误导:(