如何在Swift中访问类的类的方法?

时间:2015-11-08 09:21:03

标签: ios swift

我的目标是访问另一个班级sayName()内的班级Klass中包含的方法Manny

class Manny {
    class Klass {
        func sayName() {
            print("Klass")
        }
    }
}

Manny.Klass.sayName()会返回错误,因为它需要括号内的一些代码:

  

在调用

中缺少参数#1的参数

但是,方法sayName()没有任何参数。

我知道我可以使用点符号Manny向类Manny.myMethod()发送消息,但是如何在另一个类中访问类的方法?

2 个答案:

答案 0 :(得分:4)

您的问题是您的函数sayName()是实例函数,而不是类函数。因此,如果没有类Klasse的实例,则无法调用该方法。

要么将函数的类型更改为类类型,要么先创建实例并在该实例上调用该函数:

class Manny {
    class Klass {
        class func sayName() {
            print("Klass")
        }
    }
}

Manny.Klass.sayName()

class Manny {
    class Klass {
        func sayName() {
            print("Klass")
        }
    }
}

let klasse = Manny.Klass()
klasse.sayName()

两者都正确打印

  

克拉斯

答案 1 :(得分:1)

当你在类上调用方法时,你必须通过添加关键字class

将方法声明为类方法
class Manny {
  class Klass {
    class func sayName() {
      print("Klass")
    }
  }
}