Swift超类/子类视图控制器变量

时间:2014-11-17 21:53:59

标签: ios arrays inheritance swift

我有一个超类UIViewController,其中包含:

var results: [AnyObject] = []

我在超类中还有其他基于results数组内容的方法。

然后,通过从REST API加载数据,用各种类型的数据填充results数组,我有从这个超类继承的子类。

我目前不会覆盖子类“results中的viewDidLoad()数组”或任何其他方法。我只需使用results = []清除数组,然后使用特定的类类型加载数组,例如自定义类ProductString

results.append(Product())

我一直在间歇性地崩溃,但我不知道为什么。我怀疑这是由于继承的工作方式。我这样做了吗?我应该在子类的results方法中覆盖init()还是使用`override var?

1 个答案:

答案 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数组中。