子類,我有2個班 - 一個person
超類和SuperPerson
子類:swift3:創建通過類名
class person {
var name: String
var age : Int
func instance(){}
}
class SuperPerson : Person {
var power : Int
}
我有className = "SuperPerson"
,我使用的代碼:
let superPerson = NSClassFromString(className) as? Person.Type
嘗試創建一個SuperPerson
的實例,但該實例不具有可變權力 - 它確實具有年齡和名稱,但
Ca有人建議我去哪裏錯了?
請覈實,該代碼完全匹配你的。大寫在Swift中很重要。 'person'與'Person'不同,'SuperPerson'與SuperPerSon不同。 (這些應該是'Person'和'SuperPerson'。)也不清楚你用'superPerson'做什麼。你爲什麼說它「有年齡,名字?」你怎麼知道這件事的? –
我的意思是,當我用該代碼創建類時,變量superPerson具有類型Person not SuperPerson。 (按類名檢測類) –
此代碼不創建類。我最終假設你調用類似'superPerson.init()'來創建一個實例?雖然這是可能的,但是你已經將它轉換爲Person,所以編譯器無法知道它具有「power」屬性。但是,我不清楚你是如何試圖這樣做的。我很難想象'let superPerson ...'後面的代碼是什麼樣的。 –