【发布时间】:2017-10-16 11:32:29
【问题描述】:
我有 2 个类 - 一个 person 超类和一个 SuperPerson 子类:
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 的实例,但该实例没有可变的权力 - 但它确实有年龄和名称
有人可以建议我哪里出错了吗?
【问题讨论】:
-
请验证此代码是否与您的代码完全匹配。大写在 Swift 中很重要。
person与Person不同,SuperPerson与SuperPerSon不同。 (这些应该是Person和SuperPerson。)也不清楚你在用superPerson做什么。为什么说它“有年龄,有名字”?你怎么知道的? -
我的意思是,当我使用该代码创建类时,变量 superPerson 的类型为 Person 而不是 SuperPerson。 (按类名检测)
-
此代码不创建类。我假设您最终会调用
superPerson.init()之类的东西来创建实例?虽然这是可能的,但您已将其转换为Person,因此编译器无法知道它具有power属性。但我不清楚你是如何尝试这样做的。我很难想象let superPerson...之后的代码是什么样的。 -
嗨 Rob,因为我不知道我要创建的类,我只知道它是 Person 类的子类,我想在 person 类中调用 func 实例。我尝试 superPerson.init() 但 xcode 错误(更改为 superPerson.type(of:init) )