【发布时间】:2015-10-21 09:49:59
【问题描述】:
有人可以解释为什么这段代码会抛出错误吗?
class Base {}
class SubclassOfBase: Base {}
let baseItems = [Base](count: 1, repeatedValue: Base())
let subclassItems = [SubclassOfBase](count: 3, repeatedValue: SubclassOfBase())
var items = [Base]()
items.append(SubclassOfBase()) //OK
items.appendContentsOf(baseItems) //OK
items.appendContentsOf(subclassItems) //cannot invoke with argument of type [SubclassOfBase]
items.append(subclassItems.first!) //OK
下一个问题:添加子类元素的唯一方法是在 for 循环中逐个添加吗?
【问题讨论】:
-
可能的解决方法:
items.appendContentsOf(subclassItems as [Base]).