答案 0 :(得分:0)
可以将myObject设置为AnyObject,然后可以检查对象来自A类还是B类。
class viewc : UIViewController {
var myObject: AnyObject?
override func viewDidLoad() {
super.viewDidLoad()
if let object = myObject as? ClassA {
print("Object is of class- ClassA")
}else if let object = myObject as? ClassB {
print("Object is of class- ClassB")
}
}
}
答案 1 :(得分:0)
您不能像var object = <T>()
那样做,因为它的格式不正确,或者像var object = T()
那样,因为非标称类型'T'不支持显式初始化。
您可以像这样使用它:-
class ABC<T>: UIViewController{
var object: T? = nil
}
希望它会有所帮助:)
答案 2 :(得分:0)
您可以使用通用类型。
class ControllerTimeline<T>: UIViewController {
var myObject :T?
...
}
如果您需要T有一些约束(例如:只能是NSObject)
class ControllerTimeline<T: NSObject>: UIViewController {
var myObject :T?
...
}
如果只想使用A或B,则可以为A和B +创建一个公共父代。
class ControllerTimeline<T: C>: UIViewController {
...
或者让A和B实现通用协议并输入类似的内容
class ControllerTimeline<T: MyProtocol>: UIViewController {
...