2017-03-24 4 views
-1
import UIKit 

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 
    @IBOutlet weak var picker: UIPickerView! 

    var pickerData: [String] = [String]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.picker.delegate = self 
     self.picker.dataSource = self 

     // Input data into the Array: 
     pickerData = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6"] 
    } 

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

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

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

Ich erhalte die Meldung „Typ‚Viewcontroller‘entspricht nicht Protokoll‚UIPickerViewDataSource‘“ in Swift 8.2.1 und ich don weiß nicht, wie ich das Problem lösen kann.Typ ‚Viewcontroller‘ nicht zu Protokoll ‚UIPickerViewDataSource‘ in Swift konform 8.2.1

+0

Drücken Sie ⌘4 (Issue Navigator), klicken Sie auf das Dreieck neben dem Fehler und implementieren Sie die angezeigte fehlende Methode (n) – vadian

+0

Ich bekomme einen Kreis daneben und es gibt keine Implementierung gezeigt, um es zu beheben –

+0

Nicht in der Editor-Fenster, im Issue-Navigator (linke Seitenleiste). Drücken Sie ⌘4 oder klicken Sie auf das Symbol * caution *. Oder ⌘-Klick auf UIPickerViewDataSource, um die Deklaration zu erhalten. – vadian

Antwort

0

Sie eine gewünschte Funktion fehlt - eigentlich haben Sie es, aber es ist nicht ganz richtig ...

func numberOfComponents(in pickerView: UIPickerView) -> Int 

In Xcode, wenn Sie auf UIPickerViewDataSource der rechten Maustaste und wählen Sie Jump to Definition werden Sie Siehe die erforderlichen und optionalen Protokollfunktionen.

+0

ich eine andere Fehlermeldung tatsächlich mit dieser Zeile erhalten // Die Anzahl der Datenzeilen func picker (picker: UIPickerView, numberOfRowsInComponent Komponente: Int) -> Int { return pickerData.count } aber es kann, indem festgelegt werden _ wie ich in der Fehlermeldung bekomme, aber immer noch habe ich nicht, wie man es beheben kann –

+0

Hier ist eine Erklärung des "_" in der Funktionsdefinition ... http://stackoverflow.com/questions/39627106/why -do-ich-brauche-Unterstreichungen-in-swift – DonMag

Verwandte Themen