2015-11-08 73 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") 
    } 
    } 
}