swift 4 : Ambiguous reference to member 'pickerView(_:numberOfRowsInComponent:)'
Bonjour,
Je suis débutant en Swift 4 et j'utilise Xcode 8.3.3.
Je voudrais créé un timer, qui pourrais prendre plusieur valeur en fonction du choix de l'utilisateur (choix 1 : 8 min, choix 2 : 2 min ...). Pour cela j'utilise un pickerView que j'initialise avec les fonctions
"numberOfComponents(in pickerView: UIPickerView) -> Int" et
"pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int".
Par la suite, pour affecter des valeurs à mon pickerView, j'utilise
"pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?"
Mon problème est le suivant : lorsque je veux utiliser mon pickerView (avec pickerView.dataSource ou pickerView.delegate) j'ai un message d'erreur :
"Ambiguous reference to member 'pickerView(_:numberOfRowsInComponent:)'", il ne sait pas si je parle du pickerView qui retourne un Int ou celui qui retourne un String.
Aprés quelques recherche, swift 4 devrait faire la différence entre leux deux fonctions du même nom (ici pickerView) si les paramétres et les returns des focntions sotn différent, ce qui est mon cas.
Ci-dessous mon code source.
Merci beaucoup d'avant de votre préciseuse aide :)
//
// ViewController.swift
// EggTimer
//
// Created by bastien on 25/06/2017.
// Copyright © 2017 bastien. All rights reserved.
//
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
// Variable
var pickerInfo: [String] = []
// Outlets
@IBOutlet weak var minuteurLabel: UILabel!
@IBOutlet weak var activerMinuteurBouton: UIButton!
@IBOutlet weak var pickerViewOutlet: UIPickerView!
// Actions
@IBAction func activerMinuteurAction(_ sender: UIButton) {
}
@IBAction func resetMinuteurAction(_ sender: UIButton) {
}
override func viewDidLoad() {
super.viewDidLoad()
pickerView.dataSource = self
pickerView.delegate = self
for i in 0...8{
let row = "option \(i)"
pickerInfo.append(row)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK - pickerViewDataSource
// returns the number of 'columns' to display.
@available(iOS 2.0, *)
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
// returns the # of rows in each component..
@available(iOS 2.0, *)
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return pickerInfo.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerInfo[row]
}
}