0
子類的對象我有動物類 「級功能建立()」:類FUNC鍵創建斯威夫特
class func create<T>() -> T {
let animal = Animal() as! T
return animal
}
,我有子類犬:
class Dog: Animal { }
我使用create()爲創建子類對象:
let doggy: Dog = Dog.create()
但如果我創建的狗是這樣的:
let doggy = Dog.create()
我有錯誤「無法推斷通用參數'T' 如何根據調用者類型設置動態類型推斷?
爲什麼不只是創建一個常規的初始化程序?你應該創建一個動物協議,並使用結構而不是繼承子類 –
'協議Animal {var weight:Int {get}}' 'struct Dog:Animal {let weight:Int}' 'let doggy = Dog(weight: 10)' –
'協議動物{ 靜態FUNC創建() - >自 }' '結構犬:動物{ 靜態FUNC創建() - >犬{ 返回狗() } }' '讓小狗= Dog.create()' –