2015-11-06 43 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) 
}