Ambiguous reference to member 'view'

heliohelio Membre

Bonsoir à  tous,


Depuis Xcode 7.3 et Swift 2.2 j'ai le code suivant :



func imageTapped(img : AnyObject)
{
let imgView = img.view as UIImageView
print(imgView.tag)
...
}

qui donne cette erreur : Ambiguous reference to member 'view' au niveau de let imgView = img.view as UIImageView


 


Qu'est-ce qui a changé depuis Xcode 7.2 ?


Merci.


Réponses

  • AliGatorAliGator Membre, Modérateur
    Heu moi la question que je poserais plutôt c'est "par quel miracle ça marchait avant" surtout.

    img est déclaré comme étant un AnyObject
    Du coup par quel miracle tu pourrais appeler une propriété "view" sur un object qui peut être de n'importe quel type ?

    Et d'ailleurs tu t'attends à  ce que ce soit de quel type ton objet img en vrai ?

    Dans tous les cas, soit tu types explicitement ton paramètre pour qu'il ne soit pas du type trop générique "AnyObject" mais du bon type, soit tu utilises un "guard let imgView as? LeTypeAuquelTuTattends", mais en tout cas, le code que tu as écrit actuellement lui n'est pas très logique en terme de cohérence sur les types.
  • heliohelio Membre

    Merci,


     


    code qui fonctionne :



    func imageTapped(sender : UITapGestureRecognizer)
    {
    let imgView = sender.view
    print(imgView.tag)
    ...
    }

  • samirsamir Membre

    Il faut typer au maximum et éviter Any et AnyObject si c'est possible.

Connectez-vous ou Inscrivez-vous pour répondre.