【发布时间】:2018-11-19 12:59:45
【问题描述】:
【问题讨论】:
【问题讨论】:
您可以将您的 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")
}
}
}
【讨论】:
您不能像 var object = <T>() 那样做,因为它的格式不正确,或者像 var object = T() 因为非标称类型 'T' 不支持显式初始化。
你可以这样使用它:-
class ABC<T>: UIViewController{
var object: T? = nil
}
希望对你有帮助:)
【讨论】:
您可以使用泛型类型。
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 {
...
【讨论】: