从类方法调用实例方法不起作用

时间:2014-11-19 22:40:16

标签: ios swift methods class-method

我试图从Swift中的类方法调用实例方法,但是我一直收到错误"在调用#34中缺少参数#1的参数在" someMethod()"调用

你知道为什么吗?

以下是代码:

class ViewController: UIViewController {

    class func updateData() {
        someMethod()
    }

    func someMethod() {
       NSLog("someMethod")
    }

}

1 个答案:

答案 0 :(得分:2)

updateData被声明为类方法(即静态),它在类类型的上下文中执行,而不是类实例。另一方面,someMethod是一种实例方法。

除非提供实例,否则无法从静态方法执行实例方法。

在不了解应用程序的逻辑的情况下,很难弄清问题应该如何解决。一些可能的解决方案:

  1. 通过从签名中删除uploadData来使class成为实例方法:

    func updateData() { ...
    
  2. 使someMethod成为静态方法:

    class func someMethod() { ...