2016-07-30 14 views
-2

Ich bin ein Anfänger in Swift und ich fand diesen Code online. Ich habe versucht, den Autor zu fragen, aber sie würden nicht antworten, und weil ich gerade angefangen habe, würde ich es wirklich schätzen, wenn jemand den genauen Grund für den Fehler ausfindig machen könnte und wie ich das beheben könnte. Ich bekomme weiterhin den Fehler "fataler Fehler: unerwartet gefunden Null beim Auspacken eines optionalen Werts". Ich habe versucht, Lösungen online zu finden, aber es hat nicht funktioniert. Könnte mir jemand bitte helfen? Ich danke dir sehr! (Ein bisschen zu erklären wäre toll :)!)Schwerwiegender Fehler: unerwartet gefunden Null beim Entpacken ein Optionaler Wert für UIPickerView

Hier ist mein (auch ihr) Code:

import UIKit 

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate 

{ 
    @IBOutlet weak var pickerView: UIPickerView! 


    var pickerDataSource = ["White", "Red", "Green", "Blue"]; 


    override func viewDidLoad() { 

     super.viewDidLoad() 
     self.pickerView.dataSource = self; // This is where the error occurs 
     self.pickerView.delegate = self; 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 


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

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return pickerDataSource.count; 
    } 

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { 
     return pickerDataSource[row] 
    } 

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
    { 
     if(row == 0) 
     { 
      self.view.backgroundColor = UIColor.whiteColor(); 
     } 
     else if(row == 1) 
     { 
      self.view.backgroundColor = UIColor.redColor(); 
     } 
     else if(row == 2) 
     { 
      self.view.backgroundColor = UIColor.greenColor(); 
     } 
     else 
     { 
      self.view.backgroundColor = UIColor.blueColor(); 
     } 
    } 
+0

Haben Sie Ihre 'PickerView'-Steckdose mit einem' UIPickerView' verbunden, der sich in Ihrem Storyboard befindet? – vacawama

+0

Gaurenteed Ihr IBOutlet ist nicht mit dem Storyboard verbunden. – NSGangster

+0

Ich versuchte, den PickerView-Ausgang zu verbinden, aber es würde nur die Zeile '@IBOutlet weak var pickerView: UIPickerView!' –

Antwort

1

Verbinden Sie Ihren UIPickeView Austritt aus Storyboard zu Ihrem Viewcontroller Beispiel: Auf diese Weise Ctrl + Drag Ich denke, es sollte jetzt funktionieren. Wenn es nicht das Problem ist, Kommentar unten.

+0

Vielen Dank, aber es fügte zwei weitere Fehler hinzu, von denen einer aussagt: 'Aufeinander folgende Deklarationen in einer Zeile müssen durch'; 'und' Erwartete Deklaration 'getrennt sein. Gibt es eine Möglichkeit, dieses Problem zu lösen? Ich danke dir sehr! –

+0

UPDATE: Ich habe den ersten Fehler behoben 'Konsekutive Deklarationen in einer Zeile müssen durch'; 'getrennt sein, aber ich weiß nicht, wie ich die zweite beheben soll. Bitte helfen Sie! –

+0

UPDATE: Ich habe das Problem behoben, aber ich habe einen weiteren Code hinzugefügt, um es zu beheben. Danke für Ihre Hilfe! –