如何向对象数组中添加一个继承的对象? (Swift,XCode)
问题描述:
var allCards = [CCard]
var cardsMade = 0
^^在我的视图控制器类之外,使它成为全局的,并在所有其他视图控制器文件中可访问。如何向对象数组中添加一个继承的对象? (Swift,XCode)
在另一个视图控制器我有
@IBAction func saveInfo(sender: UIButton) {
let a = CCreature(n: cName!, e: cExpansion, ec: cEnergy!, tc: cTurnCount!,
ef: cEffect!, at: cStrength!, ht:cHealth!, sp: cSpeed!, sb: false)
allCards.append(a)
cardsMade++}
所以按下saveInfo按钮时,我把所有的用户已键入的信息(这是在UITextFields,然后保存到对应vairables cEnergy等)被称为CCreature的CCard的子类,包含所有的信息。在创建类的实例后,我试图在数组中存储allCards。
后var allCards = [CCard]
预期的会员名称或构造函数调用类型名称
并且即使在被附加到阵列我收到此错误行:我上线得到一个错误
无法将类型“CCreature”预期参数类型的值“INOUT阵列< C卡>”
我也越来越THI ■错误消息之前,当我的程序编译:
致命错误:数组索引的范围
任何想法?
答
当你拥有它[CCard]
是一个类型声明,你可以使用它作为:
var allCards : [CCard]
但是,这实际上不会初始化allCards是有用的,或者,你实际上可以创建数组并初始化它使用:
var allCards = [CCard]()
如果您使用的是默认的数组构造
这不是你的榜样的全部,因为你不包括很多件,但剥离显示使用,将是:
var allCards = [CCard]()
func saveInfo() {
let a = CCreature()
allCards.append(a)
}