UIPickerViewDelegate Xcode 8 Swift 3

swift, swift3, uipickerview

Solution

Correct syntax of PickerView Swift 3

// DataSource
func numberOfComponents(in pickerView: UIPickerView) -> Int {

}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

}

// Delegate

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

}

Problem

My code is: ``` class ViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource { @IBOutlet weak var picherview: UIPickerView! var prodotti = ["AAAAA", "VVVV", "CCCC"] override func viewDidLoad() { super.viewDidLoad() self.picherview.dataSource = self self.picherview.delegate = self // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerview( _ : UIPickerView, numberOfRowsInComponent component: Int) -> Int { return prodotti.count } func pickerview( _ : UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { return prodotti[row] } //ci consente di determinare quale riga è stata selezionata func pickerview(_ : UIPickerView, didSelectRow row: Int, inComponent component: Int) { print("Hai selezionato: \(prodotti[row])")} } ``` This code have error: Type 'ViewController' does not conform to protocol 'UIPickerViewDataSource' Any solution?

Original source