1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2017
    Messages : 1
    Points : 1
    Points
    1

    Par défaut 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]
    }
    }

  2. #2
    Membre à l'essai
    Homme Profil pro
    Developer mobile
    Inscrit en
    août 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developer mobile
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2017
    Messages : 10
    Points : 13
    Points
    13

    Par défaut

    Le problème vient du fait que le nom de ton UIPickerView ne correspond pas à la variable utilisée pour ton delegate.

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.pickerViewOutlet.dataSource = self
    self.pickerViewOutlet.delegate = self

Discussions similaires

  1. Reference to point is ambiguous
    Par chaostech dans le forum Développement iOS
    Réponses: 0
    Dernier message: 06/04/2016, 21h51
  2. Réponses: 3
    Dernier message: 11/06/2012, 10h36
  3. reference ambigue entre services
    Par olibara dans le forum Services Web
    Réponses: 4
    Dernier message: 15/04/2011, 18h38
  4. uninitialized reference member
    Par Leole dans le forum C++
    Réponses: 15
    Dernier message: 01/11/2007, 16h26
  5. Réponses: 4
    Dernier message: 30/05/2006, 20h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo