2015-04-06 33 views
2

試圖在按鈕上觸摸按鈕以將按鈕的標題作爲字符串記錄在resultsStack中,但我遇到這些錯誤:嘗試編碼時的錯誤按按鈕將字符串添加到數組

var resultsStack是給我的錯誤:

missing argument for parameter #1 in call

也是,在我if/else我越來越

EmotionsQuestionsViewController does not have a member named resultsStack

我不知道這是爲什麼不WO rking。我仿照它用來做計算器在此過程中的步驟:https://www.youtube.com/watch?v=QLJtT7eSykg

class EmotionQuestionsViewController: UIViewController{ 

    @IBOutlet var emotionQuestion: UILabel! 

    var resultsStack = Array() 
    var questionsStack = Array(arrayLiteral: "HAPPY", "JOYFUL", "SAD", "ANXIOUS") 
    var i = [0] 

    @IBAction func RecordValueFromNumericalScaleOneToSeven(sender: UIButton) { 


     let value = sender.currentTitle! 
     resultsStack.append(value) 

     if resultsStack.count < questionsStack.count{ 
     //change lablel to next string in questionsStack array & increase i count by 1 
     } 
     else{ 
     //advance to resultsViewController 
     } 
    } 

} 

回答

1

第二個錯誤,

EmotionsQuestionsViewController does not have a member named resultsStack

純粹是因爲造成的第一個錯誤。消除第一個錯誤將消除這個錯誤。


第一個錯誤發生是因爲您需要指定數組的類型。類似這樣的:

var resultsStack = Array<<#type#>>() 

其中<#type#>被您需要的任何類型替換。例如,看起來你可能想要一個String的數組?所以,你可能想使用:

var resultsStack = Array<String>() 

這也可以寫成:

var resultsStack = [String]() 

var resultsStack: [String] = [] 

所有這三種做同樣的事情。

+0

這樣做!謝謝! –

+1

您也可以將後續行寫爲'var questionsStack = [「HAPPY」,「JOYFUL」,「SAD」,「ANXIOUS」]''arrayLiteral:'初始值設定項並非真正的直接使用。 –