2016-12-01 68 views
0

注:我自學自己。我在過去的幾天裏一直和Swift一起工作。我有一個應用程序,教我的基本知識。Swift - 預期聲明在'View Controller'聲明中

好吧,所以我一直在閱讀,我發現2個可能的原因,這個錯誤。 1.是,我沒有代碼的方法/函數 2.是我缺少一個}

所以它只是突出了:

class ViewController: UIViewController, UIPickerViewDelegate 

,也使得一點點紅色箭頭下ViewController中的V.那麼錯誤狀態:

  1. 在「視圖 - 控制器」

我不知道還有什麼可以是一種可能性宣言。唯一不屬於函數的部分是數組聲明。我把這些放在@IBOutlets之後,並在override func之前。其他一切都在重寫func或func中。

import UIKit 

class ViewController: UIViewController, UIPickerViewDelegate 
{ 
    // connects the text fields 
    @IBOutlet var raceViewer: UITextField! 
    @IBOutlet var strStat: UITextField! 
    @IBOutlet var dexStat: UITextField! 
    @IBOutlet var conStat: UITextField! 
    @IBOutlet var intStat: UITextField! 
    @IBOutlet var wisStat: UITextField! 
    @IBOutlet var chrStat: UITextField! 

    // connects stats for human, half-elf, half-orc 
    @IBOutlet var singleStat: UITextField! 

    // connects the picker views 
    @IBOutlet var racePicker: UIPickerView! 
    @IBOutlet var statPicker: UIPickerView! 
    @IBOutlet var singleStatPicker: UIPickerView! 

    // connects the labels for the race modifications 
    @IBOutlet var raceStr: UILabel! 
    @IBOutlet var raceDex: UILabel! 
    @IBOutlet var raceCon: UILabel! 
    @IBOutlet var raceInt: UILabel! 
    @IBOutlet var raceWis: UILabel! 
    @IBOutlet var raceChr: UILabel! 

    // connects the labels for final modification 


    // connects the labels for mod 



    // defines the arrays 
    var races = ["","Dwarf","Elf","Gnome","Half-Elf","Half-Orc","Halfling","Human","Ifrit","Oread","Sylph","Tengu","Undine","Kitsune","Nagaji","Wayang"] 
    var abilStats = ["","7","8","9","10","11","12","13","14","15","16","17","18"] 
    var single = ["Strength","Dexterity","Constitution","Intelligence","Wisdom","Charisma"] 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
     racePicker = UIPickerView() 
     statPicker = UIPickerView() 
     singleStatPicker = UIPickerView() 

     racePicker.delegate = self 
     statPicker.delegate = self 
     singleStatPicker.delegate = self 

     self.raceViewer.inputView = self.racePicker 
     self.singleStat.inputView = self.singleStatPicker 
     self.strStat.inputView = self.statPicker 
     self.dexStat.inputView = self.statPicker 
     self.conStat.inputView = self.statPicker 
     self.intStat.inputView = self.statPicker 
     self.wisStat.inputView = self.statPicker 
     self.chrStat.inputView = self.statPicker 

     // set the tags for the pickerview 
     racePicker.tag = 0 
     statPicker.tag = 1 
     singleStatPicker.tag = 2 

     // Do any additional setup after loading the view, typically from a nib. 
     //let racePickerView = UIPickerView() 
     //racePickerView.delegate = self 
     //raceViewer.inputView = racePicker 

     singleStat.isHidden = true 
    } 

    override func didReceiveMemoryWarning() 
    { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    func numberOfComponentsInPickerView(_ pickerView: UIPickerView) -> Int 
    { 
     return 1 
    } 

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int 
    { 
     if pickerView.tag == 0 
     { 
      return races.count 
     } 
     else if pickerView.tag == 1 
     { 
      return abilStats.count 
     } 
     else if pickerView.tag == 2 
     { 
      return single.count 
     } 
     return 1 
    } 

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? 
    { 
     if pickerView.tag == 0 
     { 
      return races[row] 
     } 
     else if pickerView.tag == 1 
     { 
      return abilStats[row] 
     } 
     else if pickerView.tag == 2 
     { 
      return single[row] 
     } 

     return "" 
    } 

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
    { 
     if pickerView.tag == 0 
     { 
      raceViewer.text = races[row] 

      // Dwarf 
      if raceViewer.text == races[1] 
      { 
       // values changed 
       raceCon.text = "2" 
       raceWis.text = "2" 
       raceChr.text = "-2" 

       // values reset 
       raceStr.text = "0" 
       raceDex.text = "0" 
       raceInt.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Elf 
      else if raceViewer.text == races[2] 
      { 
       // values changed 
       raceDex.text = "2" 
       raceCon.text = "-2" 
       raceInt.text = "2" 

       // values reset 
       raceStr.text = "0" 
       raceWis.text = "0" 
       raceChr.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Gnome 
      else if raceViewer.text == races[3] 
      { 
       // values changed 
       raceStr.text = "-2" 
       raceCon.text = "2" 
       raceChr.text = "2" 

       // values reset 
       raceDex.text = "0" 
       raceInt.text = "0" 
       raceWis.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Half-Elf 
      else if raceViewer.text == races[4] 
      { 
       // values reset 
       raceStr.text = "0" 
       raceDex.text = "0" 
       raceCon.text = "0" 
       raceInt.text = "0" 
       raceWis.text = "0" 
       raceChr.text = "0" 

       // shows the singleStat text field 
       singleStat.isHidden = false 
      } 

      // Half-Orc 
      else if raceViewer.text == races[5] 
      { 
       // values reset 
       raceStr.text = "0" 
       raceDex.text = "0" 
       raceCon.text = "0" 
       raceInt.text = "0" 
       raceWis.text = "0" 
       raceChr.text = "0" 

       // shows the singleStat text field 
       singleStat.isHidden = false 
      } 

      // Halfling 
      else if raceViewer.text == races[6] 
      { 
       // values changed 
       raceStr.text = "-2" 
       raceDex.text = "2" 
       raceChr.text = "2" 

       // values reset 
       raceCon.text = "0" 
       raceInt.text = "0" 
       raceWis.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Human 
      else if raceViewer.text == races[7] 
      { 
       // values reset 
       raceStr.text = "0" 
       raceDex.text = "0" 
       raceCon.text = "0" 
       raceInt.text = "0" 
       raceWis.text = "0" 
       raceChr.text = "0" 

       // shows the singleStat text field 
       singleStat.isHidden = false 
      } 

      // Ifrit 
      else if raceViewer.text == races[8] 
      { 
       // values changed 
       raceDex.text = "2" 
       raceWis.text = "-2" 
       raceChr.text = "2" 

       // values reset 
       raceStr.text = "0" 
       raceCon.text = "0" 
       raceInt.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Oread 
      else if raceViewer.text == races[9] 
      { 
       // values changed 
       raceStr.text = "2" 
       raceWis.text = "2" 
       raceChr.text = "-2" 

       // values reset 
       raceDex.text = "0" 
       raceCon.text = "0" 
       raceInt.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Sylph 
      else if raceViewer.text == races[10] 
      { 
       // values changed 
       raceDex.text = "2" 
       raceCon.text = "-2" 
       raceInt.text = "2" 

       // values reset 
       raceStr.text = "0" 
       raceWis.text = "0" 
       raceChr.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Tengu 
      else if raceViewer.text == races[11] 
      { 
       // values changed 
       raceStr.text = "-2" 
       raceDex.text = "2" 
       raceWis.text = "2" 

       // values reset 
       raceCon.text = "0" 
       raceInt.text = "0" 
       raceChr.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Undine 
      else if raceViewer.text == races[12] 
      { 
       // values changed 
       raceStr.text = "-2" 
       raceDex.text = "2" 
       raceWis.text = "2" 

       // values reset 
       raceCon.text = "0" 
       raceInt.text = "0" 
       raceChr.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Kitsune 
      else if raceViewer.text == races[13] 
      { 
       // values changed 
       raceStr.text = "-2" 
       raceDex.text = "2" 
       raceChr.text = "2" 

       // values reset 
       raceCon.text = "0" 
       raceInt.text = "0" 
       raceWis.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Nagagi 
      else if raceViewer.text == races[14] 
      { 
       // values changed 
       raceStr.text = "2" 
       raceInt.text = "-2" 
       raceChr.text = "2" 

       // values reset 
       raceDex.text = "0" 
       raceCon.text = "0" 
       raceWis.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 

      // Wayang 
      else if raceViewer.text == races[15] 
      { 
       // values changed 
       raceDex.text = "2" 
       raceInt.text = "2" 
       raceWis.text = "-2" 

       // values reset 
       raceStr.text = "0" 
       raceCon.text = "0" 
       raceChr.text = "0" 

       // hides the singleStat text field 
       singleStat.isHidden = true 
      } 
     } 
    } 
} 
+2

提供更多上下文。在該行之前發佈更多的Swift文件。 – rmaddy

+0

該行之前唯一的是 import UIKit – Micheal

回答

1

我測試了你的代碼,並且它自己也沒問題。

但是,如果您創建兩個文件都使用ViewController類名稱,則會收到您提供的錯誤消息。

enter image description here

在iOS中,你不能創建具有相同的名稱(類,結構和枚舉)兩個或多個對象,以避免命名衝突。

請將您遇到問題的班級重命名,並查看問題是否已解決。

+0

我確實有這個。我只是在下一行開頭{我完成了所有的匹配{},「」,() – Micheal

+0

@MIcheal正如rmaddy問的那樣,你可以發佈文件的全部內容嗎?沒有它就很難排除故障。 – CodeBender

+0

沒問題。它將更新主要問題。 – Micheal