方法调用中的额外参数

时间:2014-08-07 19:42:53

标签: ios swift

我希望调用另一个类中声明的ViewController类中的方法。

在我的Animator课程中:

class Animator {

    func animate(view:View!, scrollView:UIScrollView!) {
    //animation code
    }
}

但是当我在View Controller类中调用该方法时

Animator.animate(viewA, scrollView:scrollView)

我收到 "Extra Argument 'scrollView' in call 错误

这很简单,我对此错误的原因感到困惑。

2 个答案:

答案 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中的错误消息可能会产生误导:(