我试图从Swift中的类方法调用实例方法,但是我一直收到错误"在调用#34中缺少参数#1的参数在" someMethod()"调用
你知道为什么吗?
以下是代码:
class ViewController: UIViewController {
class func updateData() {
someMethod()
}
func someMethod() {
NSLog("someMethod")
}
}
答案 0 :(得分:2)
updateData
被声明为类方法(即静态),它在类类型的上下文中执行,而不是类实例。另一方面,someMethod
是一种实例方法。
除非提供实例,否则无法从静态方法执行实例方法。
在不了解应用程序的逻辑的情况下,很难弄清问题应该如何解决。一些可能的解决方案:
通过从签名中删除uploadData
来使class
成为实例方法:
func updateData() { ...
使someMethod
成为静态方法:
class func someMethod() { ...