Xcode: Possible de créer automatiquement des stubs pour les méthodes requises par L'interface de protocole?

Venant D'un arrière-plan Eclipse / Java, l'une de mes fonctionnalités préférées est la possibilité de supprimer rapidement toutes les méthodes requises par une interface. Dans Eclipse, je peux choisir 'Override / implement' dans le menu source pour générer des méthodes stub pour n'importe quelle méthode de l'Interface.

Je voudrais faire la même chose dans Objective-C. par exemple, si je déclare une classe qui implémente le protocole 'NSCoding' ,J'aimerais que Xcode génère automatiquement les méthodes requises pour implémenter ce protocole. Il est frustrant de devoir rechercher et ensuite copier/coller les signatures des méthodes requises chaque protocole que j'essaie d'implémenter.

J'essaie depuis un moment de savoir si cela est possible, mais je n'ai encore rien trouvé de prometteur. Est - ce possible dans XCode?

46
demandé sur Dan Rosenstark 2009-11-07 23:35:49

10 réponses

Accessorizer écrira les méthodes d'encodage et de décodage pour les ivars qui lui sont passés (protocole NSCoding et archivage NSDocument). Il générera également des constantes de chaîne statiques ou #define avec un préfixe personnalisé; copyWithZone:; et d'autres choses si vous en avez besoin - le tout à partir d'un simple raccourci via les Services ou de la barre d'outils. Accessorizer archivage à clé

7
répondu Kevin 2009-11-18 21:45:10

Je crois que Accessorizer faire ce que vous souhaitez.

8
répondu jessecurry 2009-11-12 03:33:20

Pas la réponse immédiate, juste un indice:

Hors de la boîte XCode ne peut pas.

Mais AppCode pouvez.

Il peut faire cela automatiquement (avec votre permission, bien sûr).

Si certaines méthodes de protocole marquées comme @required - AppCode mettra en évidence l'implémentation et suggérera d'implémenter ces méthodes.

exemple

@optional Méthodes également disponibles pour implémenter automatiquement (raccourci: control + , je).

6
répondu skywinder 2014-01-15 01:32:04

Vous pouvez créer des scripts pour L'élément de menu de script dans AppleScript, Perl, Python, Ruby ou tout autre langage de script qui va dans le menu de script.

Votre pourrait placer le point d'insertion dans la .m fichier et ont le script rechercher le correspondant .h fichier. Localisez les protocoles pris en charge et ainsi de suite...

MacTech a publié un article en 2007 Xcode menu Scripts

1
répondu Niels Castle 2009-11-07 21:18:02

Xcode 3.2 complètera automatiquement les implémentations de méthodes connues. En d'autres termes, si la méthode est déclarée quelque part (par exemple, dans un protocole), lorsque vous commencez à taper dans un .m fichier, XCODE 3.2 va compléter automatiquement la signature de la méthode pour vous. Ce n'est pas tout à fait ce que vous avez demandé, mais c'est terriblement pratique.

1
répondu Kevin Ballard 2009-11-08 07:59:32

Je cherche également un moyen de générer des stubs de méthode pour les protocoles dans mon fichier d'en-tête. J'ai vérifié Accessorizer et il semble être un outil pratique, mais à moins que j'ai manqué quelque chose, je n'ai pas trouvé le moyen de générer des stubs de méthode pour un protocole.

Eric, si vous avez trouvé une autre solution, veuillez poster ce que vous avez trouvé. C'est incroyable pour moi que XCode ne l'ait pas déjà intégré dans L'IDE.

1
répondu Brad 2009-11-24 21:03:41

Puisque le lien donné par la réponse acceptée ne fonctionne plus (et est redirigé vers une annonce), Voici une autre bonne explication sur la façon d'utiliser accessorizer pour créer des stubs de méthode de protocole.

1
répondu pille 2011-11-25 13:16:45

Basé sur le script ruby "Create @property, @synthesize & dealloc from Variable Declaration" D'AllanCraig, j'en ai créé un pour générer des stubs d'implémentation à partir de ceux de l'interface: http://pastebin.com/4T2LTBh6

Comment utiliser?

  • configurez le script sur votre XCode (Script Shell) et attribuez-lui un raccourci (par exemple CMD+5).
  • Sélectionnez les lignes de votre fichier d'interface dans lesquelles vous souhaitez générer l'implémentation,puis appuyez sur la touche de raccourci.
  • Votre .m contiendra votre méthodes sélectionnées.
0
répondu AlfredBaudisch 2010-08-23 18:07:08

Je sais que c'est une vieille question, mais si vous souhaitez toujours voir les dernières définitions, faites un clic droit sur la classe en question et passez à la définition. Ici lyes toutes les fonctions non obsolètes actuelles de sorte que vous ne comptez pas sur un tiers pour rester à jour.

0
répondu Mark McCorkle 2013-04-23 13:23:42

Dans mon cas ci-dessous le style m'aide beaucoup, dans un sens résolu mon problème.

Supposons que vous ayez la déclaration de méthode suivante:

+(DBManager*)getSharedInstance;

À partir du fichier D'implémentation, vous commencez à taper + ge et xcode choisira automatiquement la méthode

+(DBManager*)getSharedInstance;
0
répondu Saleh Enam Shohag 2016-03-04 06:24:13