我有一个超类UIViewController
,其中包含:
var results: [AnyObject] = []
我在超类中还有其他基于results
数组内容的方法。
然后,通过从REST API加载数据,用各种类型的数据填充results
数组,我有从这个超类继承的子类。
我目前不会覆盖子类“results
中的viewDidLoad()
数组”或任何其他方法。我只需使用results = []
清除数组,然后使用特定的类类型加载数组,例如自定义类Product
或String
。
results.append(Product())
我一直在间歇性地崩溃,但我不知道为什么。我怀疑这是由于继承的工作方式。我这样做了吗?我应该在子类的results
方法中覆盖init()
还是使用`override var?
答案 0 :(得分:0)
我认为类型转换可以在这里工作 尝试在子类:
中执行此操作class SubClass: SuperClass {
private var _results: [Product] = []
override var results: [AnyObject] {
get {
return _results
}
set {
_results = newValue as! [Product]
}
}
}
但是Product
必须是一个类而不是结构或枚举
此外,由于String
不符合AnyObject
,您无法将String
保存在results
数组中。