2015-04-06 29 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:'初始值设定项并非真正的直接使用。 –