【发布时间】:2020-12-10 09:09:32
【问题描述】:
我有两个类 ClassA、ClassB、ClassC 和 ClassC 是从 ClassA 扩展而来的
open class classA: NSObject{
var firstName = String()
var lastName = String()
}
open class classB: NSObject{
public func getObject(dictionary : Dictionary<String,Any>) -> Dictionary<String,Any>{
var Dict : [String: Any] = [:]
var ListArray = Array<Any>()
let tempArray = dictionary["data"] as! Array<Any>
for item in 0..<tempArray.count{
let dict = tempArray[item] as! NSMutableDictionary
let myclass = classA()
if let val = dict["firstName"] as? String{
myclass.firstName = val
}else if let val = dict["lastName"] as? String{
myclass.lastName = val
}
ListArray.append(myclass)
}
Dict["data"] = ListArray
return Dict
}
}
如果我像这样扩展 ClassC
public ClassC : ClassA{
var age = String()
var address = String()
}
有没有办法在 B 类函数 getObjects 中使用这个 ClassC 变量? 我无法将 ClassC 变量移动到 ClassA。 任何人都可以帮助我实现这一目标。
提前致谢。
【问题讨论】:
-
为什么B不能从A扩展?否则,这看起来很快就会成为一个工厂类,可能被 C(和其他)独立使用
-
@MadProgrammer 感谢您的评论,您能否解释一下,我是编程新手。
-
如果你想让C同时拥有A和B的功能,那么B必须继承A,那么C就会继承A和B的功能。另一方面,如果你想要B 更通用并用于更多用例,然后 B 将成为“工厂”类,C 将在内部创建一个实例并使用