web-dev-qa-db-fra.com

Implémentation automatique Swift dans Xcode

Je viens de commencer avec le langage Swift et venant de Java ça a l'air super jusqu'ici. Mais il me manque vraiment quelque chose:

Eclipse avait cette grande fonctionnalité qui, lorsque j'ai ajouté "implémente XYZ", m'a fourni une fonction pour implémenter automatiquement les stubs de fonction nécessaires. Cela permet un immense gain de temps.

Xcode ne semble pas avoir cette fonctionnalité, ou manque-t-il quelque chose?

J'ai trouvé le plugin accessorize, mais cela ne semble fonctionner qu'avec Objective C ..

Y a-t-il une solution?

PS. J'utilise Xcode 6.1.1

36
user3207838

Xcode 9

Xcode 9 prend désormais en charge la conformité aux méthodes de protocole via un "fix it". Il remplira automatiquement les méthodes manquantes pour vous. Cela a été annoncé lors de la WWDC 2017.

enter image description here

Mise à jour: Cela ne semble malheureusement pas fonctionner pour les protocoles que vous avez définis.

16
Guy Daher

NB: Cette réponse est vraie pour Xcode avant la version 9; dans la version 9 Apple a ajouté la possibilité de corriger automatiquement les méthodes de protocole manquantes; voir réponse de Guy Daher .

Je viens de créer un projet iOS et je me suis dirigé vers mon fichier UIViewController.Swift. Là, j'ai déclaré qu'il implémentait UITableViewDelegate:

class ViewController: UIViewController, UITableViewDelegate {

Maintenant, quand je vais dans le corps de la classe et que je commence à taper "tab ...", je vois les compléments appropriés:

Xcode autocompletions

Frappe Enter insère ensuite la fonction stub, avec le curseur placé prêt à coder.

C'est juste la façon dont Xcode complète automatiquement les protocoles (ou les méthodes de classe héritées). Si vous voulez les faire tous en même temps, je ne pense pas que ce soit possible, malheureusement. Mais vous pouvez toujours Cmd-cliquez ou Option-Cmd-cliquez (qui utilise une fenêtre d'édition secondaire) sur le nom du protocole pour accéder à sa définition, qui est essentiellement une liste de toutes ses méthodes que vous pouvez copier et coller dans votre code. Vous auriez besoin de ranger un peu à partir de là, mais pas beaucoup.

22
Matt Gibson

Xcode 9, prend en charge la mise en œuvre des méthodes obligatoires de Swift Datasource & Delegates.

Regardez ces instantanés, avec un exemple de UICollectionViewDataSource:

Indiquant un avertissement pour implémenter des méthodes de protocole:

enter image description here

En cliquant sur le bouton 'Fix', il a ajouté toutes les méthodes obligatoires:

enter image description here

Option alternative :
Vous pouvez utiliser une touche de raccourci clavier: Ctrl + Option + Command + F pour résoudre tous les problèmes à la fois.

enter image description here

3
Krunal