2016-12-01 2 views
0

ПРИМЕЧАНИЕ: Я сам участвую в себе. Я работаю с Swift в течение последних нескольких дней. У меня есть приложение, которое учит меня основам.Swift - Ожидаемая декларация В декларации 'View Controller'

Итак, я прочитал, и я нашел две возможные причины для этой ошибки. 1. Это у меня нет кода в методе/функции 2. Является ли я отсутствует}

Так это только подчеркивает:

class ViewController: UIViewController, UIPickerViewDelegate 

Он также ставит маленькую красную стрелку под V в ViewController. Тогда ошибка гласит:

  1. В декларации «View Controller»

Я не уверен, что еще может быть возможность. Единственным кодом, который не является частью функции, являются объявления массива. Я поместил их сразу после @IBOutlets и сразу же после переопределения func. Все остальное находится в функции override или 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

Единственная вещь перед этой строкой импорт UIKit – Micheal

ответ

1

Я проверил ваш код и сам по себе, это нормально.

Однако, если вы создадите два файла, которые используют имя класса ViewController, вы получаете сообщение об ошибке, которое вы предоставляете.

enter image description here

В прошивкой, вы не можете создать два или более объектов с одинаковыми именами (классы, структуры и перечисления), чтобы избежать конфликтов имен.

Пожалуйста, переименуйте класс, в котором вы видите проблему, и проверьте, не решена ли проблема.

+0

У меня есть это. У меня просто есть открытие {на следующей строке. Я прошел через и сопоставил все {}, "",() – Micheal

+0

@MIcheal Как сказал rmaddy, можете ли вы разместить полный текст файла? Без него трудно устранить неполадки. – CodeBender

+0

Не проблема. Он обновит основной вопрос. – Micheal