web-dev-qa-db-fra.com

Comment créer une catégorie dans Xcode 6 ou supérieur?

Je veux créer une catégorie sur UIColor dans mon application à l'aide de Xcode 6. Mais le fait 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?

315
Yalamandarao

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

  1. Cliquez sur File -> New -> File

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

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

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

741
unom

Pour créer CategoryBaseClass + CategoryName.m/.h:

  1. Fichier → Nouveau → Fichier ... ou utilisez ⌘N.
  2. Sélectionnez Fichier Objective-C.

enter image description here

  1. Tapez le nom de la catégorie, sélectionnez Type de fichier: Catégorie, puis sélectionnez la classe de base.

enter image description here

  1. Complétez le flux pour créer la catégorie.
77
Zorayr

Voici une démonstration visuelle:

creating a category file

34
rob mayoff

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.

Voir réponse d'unmircea .


J'étais moi-même surpris, et je suppose qu'en raison de Swift ils ont oublié du 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 l'extrait de code pour l'interface de catégorie et l'implémentation fonctionne toujours. C'est donc extrêmement facile: tapez @interface-category et @implementation-category.

  2. Importez-le de 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 du nouveau fichier.

19
mokagio

Il n'y a pas de modèle prédéfini pour créer une catégorie dans Xcode 6 bêta (pour le moment), ils peuvent ajouter cette option ultérieurement. En tant que solution de contournement, vous pouvez créer un Cocoa Touch Class (ce n’est pas correct, mais je ne le sais pas autrement) nommé UIImage+Additions (NomClasse + NomCatégorie) et redéfinir son interface et son implémentation 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

Éditer
Cette réponse a été écrite avant de trouver un moyen de créer une catégorie dans la version bêta de Xcode 6. Vérifiez la réponse de unmircea pour la bonne façon de créer une catégorie

12
Anil Varghese

Étendre réponse fantastique d'unmircea re: comment créer une catégorie personnalisée pour implémenter une palette personnalisée UIColor, vous pouvez créer une catégorie.

Une fois que vous avez créé votre catégorie (dans cet exemple, il s’agit d’une catégorie appelée ColorPalette de la classe . UIColor), vous aurez un en-tête et un fichier d'implémentation.

UIColor + ColorPalette.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorPalette)

// Your custom colors

+ (UIColor *) customRedButtonColor;
+ (UIColor *) customGreenButtonColor;

@end

UIColor + ColorPalette.m

#import "UIColor+ColorPalette.h"

@implementation UIColor (ColorPalette)

// Button Colors

+ (UIColor *) customRedButtonColor {
    return [UIColor colorWithRed:178.0/255.0 green:25.0/255.0 blue:0.0/255.0 alpha:1.0];
}

+ (UIColor *) customGreenButtonColor {
    return [UIColor colorWithRed:20.0/255.0 green:158.0/255.0 blue:96.0/255.0 alpha:1.0];
}

Pour utiliser votre palette de couleurs personnalisée, importez simplement l'en-tête dans la classe dans laquelle vous souhaitez implémenter vos couleurs personnalisées:

#import "UIColor+ColorPalette.h"

et appelez la couleur comme une couleur standard comme redColor, greenColor ou blueColor.

Voici un lien vers une discussion un peu plus approfondie de la création d'une palette personnalisée.

De plus, voici n outil pour vous aider à sélectionner les valeurs de couleur personnalisées

6
Adrian

Vous pouvez simplement copier les modèles que vous voulez depuis une ancienne version de Xcode. J'ai créé un script Shell pour cela: https://github.com/cDigger/AddMissingTemplates

3
NSFish

Vous pouvez créer un fichier "extension" comme NSString + Helper:

1: File → New → File... or use ⌘N.

2: Name NSString+Helper (For example)

3: create the file

4: Remove the code from file

5: add 

extension NSString {


}

Terminé. profiter du codage

1
Rohit Sisodia