2015-11-08 135 views
1

我的目标是访问另一个类Manny中的类Klass中包含的方法sayName()如何访问Swift中类的方法?

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

写作Manny.Klass.sayName()因为它需要在括号中的一些代码返回一个错误:

缺少的参数#1的参数呼叫

虽然,该方法没有sayName()任何参数。

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

+0

创建一个实例或使其静态 –

回答

4

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

要么改变函数的类型为类类型或先创建一个实例,并调用该实例的功能:

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

Manny.Klass.sayName() 

OR

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

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

两个正确打印

克拉斯

1

正如你通过添加关键字呼吁必须声明的方法类方法的类的方法class

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