Nouvel Article sur mon Blog

Joanna CarterJoanna Carter Membre, Modérateur
juin 2018 modifié dans Objective-C, Swift, C, C++ #1

Je viens de publier un nouvel article sur les protocols Swift et les méthodes optionnelles - https://joannamacdev.github.io/Swift-Optional-Protocol-Methods/

Réponses

  • LarmeLarme Membre

    Dommage que tu ne parles pas du extension where: Self: class
    Truc bien sympa qu'on m'a appris pour éviter d'avoir à faire des subclasses.

  • Luc-ALuc-A Membre

    Merci Joanna pour cet article !
    Je ne savais pas que l'on pouvait créer des méthodes optionnelles avec des protocoles...

  • LarmeLarme Membre

    @Luc-A a dit :
    Je ne savais pas que l'on pouvait créer des méthodes optionnelles avec des protocoles...

    C'est le cas de la plupart des méthodes DataSource et Delegate ;)

  • Joanna CarterJoanna Carter Membre, Modérateur

    @Larme a dit :
    Dommage que tu ne parles pas du extension where: Self: class
    Truc bien sympa qu'on m'a appris pour éviter d'avoir à faire des subclasses.

    Le but de cet article est de pouvoir avoir les méthodes optionnelles dans un protocol que l'on ne veuille ni marquer avec @objc, ni être limité avec les types que l'on puisse utiliser là dedans

  • Luc-ALuc-A Membre

    @Larme a dit :

    @Luc-A a dit :
    Je ne savais pas que l'on pouvait créer des méthodes optionnelles avec des protocoles...

    C'est le cas de la plupart des méthodes DataSource et Delegate ;)

    Malheureusement pour moi ! J'oublie souvent d'assigner le DataSource et le Delegate... Et je cherche pourquoi ça ne fonctionne pas... Oui, je sais, il faut que je me grave ça dans le crâne !

  • devulderdevulder Membre
    juin 2018 modifié #7

    @Luc-A a dit :

    @Larme a dit :

    @Luc-A a dit :
    Je ne savais pas que l'on pouvait créer des méthodes optionnelles avec des protocoles...

    C'est le cas de la plupart des méthodes DataSource et Delegate ;)

    Malheureusement pour moi ! J'oublie souvent d'assigner le DataSource et le Delegate... Et je cherche pourquoi ça ne fonctionne pas... Oui, je sais, il faut que je me grave ça dans le crâne !

    Le plus simple, c'est de surcharger l'init et d'assigner les deux comme cela plus d'oubli!

        override init(frame frameRect: NSRect) 
        {
            super.init(frame: frameRect)
    
            self.delegate = self
    
                    self.dataSource = self
        }
    
  • Luc-ALuc-A Membre

    @devulder Je te remercie pour cette astuce ! Elle m'évitera de perdre du temps !

  • Joanna CarterJoanna Carter Membre, Modérateur

    @devulder a dit :

    @Luc-A a dit :

    @Larme a dit :

    @Luc-A a dit :
    Je ne savais pas que l'on pouvait créer des méthodes optionnelles avec des protocoles...

    C'est le cas de la plupart des méthodes DataSource et Delegate ;)

    Malheureusement pour moi ! J'oublie souvent d'assigner le DataSource et le Delegate... Et je cherche pourquoi ça ne fonctionne pas... Oui, je sais, il faut que je me grave ça dans le crâne !

    Le plus simple, c'est de surcharger l'init et d'assigner les deux comme cela plus d'oubli!

      override init(frame frameRect: NSRect) 
      {
          super.init(frame: frameRect)
          
          self.delegate = self
    
                    self.dataSource = self
      }
    

    Jamais! Jamais! Jamais! Utilises pas une vue comme dataSource et delegate pout elle même :s

  • Joanna CarterJoanna Carter Membre, Modérateur

    Que je suis forte ! Encore un article https://joannamacdev.github.io/Using-KeyPaths-To-Call-Methods/

    Cette fois, c'est un peu ésotérique. Dites-moi ce que vous pensez B)

  • DrakenDraken Membre
    juillet 2018 modifié #11

    Euh .. j'en pense que tu as beaucoup (trop) de temps libre en ce moment. C'est si casse-pied que ça l'exil breton ?

    EDIT : au fait, est-ce que tes tentatives de détournement/bricolage/hack de la syntaxe de Swift fonctionnent avec toutes les versions du langage, y compris la 4.2 ?

  • Joanna CarterJoanna Carter Membre, Modérateur

    Je suis toujours sur Xcode 9.4, donc c'est Swift 4.1.

    Actuellement j'ai des soucis avec le simulateur ; avec plus que iOS 9.3, j'ai les écrans noirs et il faut tester sur un vrai iBidule ;)

  • Xcode 9.4 ou 9.4.1 ? Je n'ai jamais eu ces problèmes. Pas davantage sur la bêta d'Xcode 10.

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