2015-11-06 72 views
0
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 ■错误消息之前,当我的程序编译:

致命错误:数组索引的范围

任何想法?

回答

1

当你拥有它[CCard]是一个类型声明,你可以使用它作为:

var allCards : [CCard] 

但是,这实际上不会初始化allCards是有用的,或者,你实际上可以创建数组并初始化它使用:

var allCards = [CCard]() 

如果您使用的是默认的数组构造

这不是你的榜样的全部,因为你不包括很多件,但剥离显示使用,将是:

var allCards = [CCard]() 

func saveInfo() { 
    let a = CCreature() 
    allCards.append(a) 
}