web-dev-qa-db-fra.com

Comment rendre Xcode automatiquement conforme à un protocole

Lorsque j'utilise une vue de table prototype, je dois toujours me conformer au protocole TableViewDataSource. J'oublie toujours les méthodes que je dois implémenter, je dois donc examiner la source du protocole à chaque fois. Ceci prend vraiment beaucoup de temps.

Je pense que Xcode doit avoir une fonctionnalité qui implémente automatiquement les méthodes nécessaires pour vous, non? Tout comme IntelliJ IDEA, Eclipse et Visual Studio.

Je veux savoir où puis-je trouver cette fonctionnalité. S'il n'y en a pas, existe-t-il une solution de contournement? Au moins, je n'ai pas à ouvrir le code source du protocole chaque fois que je le respecte.

Si vous ne comprenez pas ce que je veux dire, voici un code:

J'ai un protocole

protocol Hello {
    func doStuff ()
}

Quand je m'y conforme,

class MyClass: Hello {

}

Je ne me souviens souvent pas des noms des méthodes que je dois implémenter. Si Xcode a une fonctionnalité qui transforme le code ci-dessus en ceci:

class MyClass: Hello {
    func doStuff () {
        code
    }
}

Maintenant vous comprenez ce que je veux dire? Je veux juste demander où trouver une telle fonctionnalité.

18
Sweeper

Eh bien, si j'ai compris votre problème, voici une solution de contournement:

essayez de définir les méthodes avec le protocole comme préfixe, comme ici hello, vous n’aurez plus à vous rappeler les méthodes, il vous suffit de commencer à taper le nom du protocole et XCODE vous indiquera toutes les méthodes disponibles, voir ici:

 enter image description here

Et si vous souhaitez utiliser le protocole de saisie semi-automatique, essayez Snippets

9
Hamza Ansari

Xcode 9: vous pouvez ajouter des exigences de protocole manquantes en ajoutant un nouveau raccourci à votre ensemble de raccourcis clavier.

  1. Dans le menu supérieur Xcode (en haut à gauche), choisissez Préférences.
  2. Choisissez reliure clé.
  3. Rechercher sur le protocole. vous trouverez la commande appelée Refactor -> Add Missing Protocol Requirements
  4. Appuyez sur la colonne Clé puis ajoutez votre raccourci. ex: cmd + shift + M

Now vous pouvez ajouter des exigences de protocole manquantes en cliquant sur le nom du nom de la classe (ou son extension) puis sur votre raccourci clavier

 enter image description here

6
Amjad Tubasi

Xcode 9 prend en charge l’implémentation des méthodes obligatoires de Swift Datasource & Delegates.

Regardez ces instantanés, avec l'exemple de UICollectionViewDataSource:

Indication d'un avertissement pour mettre en œuvre des méthodes de protocole:

 enter image description here

En cliquant sur le bouton 'Fix', toutes les méthodes obligatoires ont été ajoutées:

 enter image description here

5
Krunal

Très similaire au message d'Amjad, Xcode 9/10 apporte la fonctionnalité permettant d'ajouter les exigences de protocole manquantes directement à partir de l'éditeur de code.

Il suffit de "cliquer avec le bouton droit" sur le nom de la classe: "Refactor" -> "Ajouter les exigences de protocole manquantes"  enter image description here

1
Maschina