316 votes

Comment créer une catégorie dans Xcode 6 ?

Je veux créer une catégorie sur UIColor dans mon application utilisant Xcode 6. Mais le problème est que dans Xcode 6 il n'y a pas de modèle de fichier de catégorie Objective-C.

Existe-t-il une option pour créer une catégorie dans Xcode 6 ?

742voto

unmircea Points 867

Ils n'ont pas oublié. Ils l'ont juste déplacé sans le dire à personne.

  1. Cliquez sur File -> New -> File

  2. Sélectionnez Objective-C file sous Sources en iOS o Mac OS respectivement et cliquez sur Suivant

  3. Maintenant sous File Type: choisir soit Category , Protocol ou Extension

PS. Sous File Name: ce que vous tapez ici sera soit le Category , Protocol ou Extension Nom.

19voto

mokagio Points 1427

Mise à jour de Xcode6-Beta5

L'interface a maintenant changé et il est possible d'ajouter une catégorie directement à partir de la fenêtre Nouveau > Fichier.

Ver réponse de unmircea .


J'ai été surpris moi-même, et je suppose qu'à cause de Swift, ils a oublié sur ce bon vieil Objective-C.

Vous avez deux options :

  1. Créez une classe Objective-C avec le nom de la catégorie, exemple UIView+Powerups puis modifiez manuellement l'interface pour qu'elle corresponde à celle de la catégorie. Notez que le snippet pour l'interface et l'implémentation de category fonctionne toujours, donc c'est très facile : tapez @interface-category y @implementation-category .

  2. Importez-le depuis Xcode 5 ! Utilisez cette commande :

    cp -r /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Cocoa\ Touch/Objective-C\ category.xctemplate /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Source/

    Fermez et rouvrez Xcode 6 et vous trouverez "Catégorie Objective-C" dans l'assistant pour le nouveau fichier.

12voto

Anil Points 13977

Il n'y a pas de modèle prédéfini pour créer une catégorie dans Xcode 6 beta (pour le moment), ils peuvent ajouter cette option plus tard. Comme solution de contournement, vous pouvez créer un Cocoa Touch Class (ce n'est pas correct, je le sais, mais il n'y a pas d'autre moyen). UIImage+Additions (ClassName+CategoryName) et de surcharger son interface et son implémentation de quelque chose comme

UIImage+Additions.h

#import <UIKit/UIKit.h>

@interface UIImage(Additions)

+(void)testMethod;

@end 

UIImage+Additions.m

#import "UIImage+Additions.h"

@implementation UIImage (Additions)

+(void)testMethod
{

}

@end

3voto

cDigger Points 36

Vous pourriez simplement copier les modèles que vous voulez d'une ancienne version de Xcode, j'ai fait un shell script pour cela : https://github.com/cDigger/AddMissingTemplates

-2voto

promacuser Points 25

Bien que toutes les réponses ci-dessus soient bonnes, je suis allé un peu plus loin et j'ai déposé un radar.

https://bugreport.apple.com

Ce problème a été facile à trouver par le passé, mais le porter à l'attention d'Apple est probablement le meilleur moyen de le faire corriger.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X