bar ios objective-c category xcode6

ios - bar - ¿Cómo creo una categoría en Xcode 6 o superior?



navigation bar swift 4 (8)

Ampliando la fantástica respuesta de unmircea sobre cómo crear una categoría personalizada para implementar una paleta de colores UIColor personalizada, puede crear una categoría.

Una vez que haya creado su categoría (en este ejemplo, es una categoría llamada ColorPalette de la clase UIColor ), tendrá un encabezado y un archivo de implementación.

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]; }

Para usar su paleta de colores personalizada, solo importe el encabezado a la clase donde le gustaría implementar sus colores personalizados:

#import "UIColor+ColorPalette.h"

y llama al color como lo harías con un color estándar como redColor , greenColor o blueColor .

Aquí hay un enlace a una discusión un poco más profunda sobre la creación de una paleta personalizada.

Además, aquí hay una herramienta para ayudarlo a seleccionar los valores de color personalizados.

Quiero crear una categoría en UIColor en mi aplicación usando Xcode 6. Pero el problema es que en Xcode 6 no hay una plantilla de archivo de categoría Objective-C.

¿Hay alguna opción para crear una categoría en Xcode 6?


Aquí hay una demostración visual:


No hay una plantilla predefinida para crear una categoría en Xcode 6 beta (por el momento), pueden agregar esta opción más adelante. Como alternativa, puede crear una Cocoa Touch Class (no es adecuada, pero no de otra manera) llamada UIImage+Additions (ClassName + CategoryName) y anular su interfaz e implementación de alguna manera como

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

Editar
Esta respuesta se escribió antes de encontrar una forma de crear una categoría en la versión beta de Xcode 6. Compruebe la respuesta de unmircea para conocer la forma correcta de crear la categoría.


No se olvidaron. Simplemente lo movieron sin decirle a nadie.

  1. Haga clic en File -> New -> File

  2. Seleccione el Objective-C file en Sources en iOS o Mac OS respectivamente y haga clic en Siguiente

  3. Ahora en File Type: elija Category , Protocol o Extension

PD. En File Name: lo que escriba aquí será la Category , el Protocol o el Nombre de la Extension .


Para crear CategoryBaseClass + CategoryName.m / .h :

  1. Archivo → Nuevo → Archivo ... o use ⌘N .
  2. Seleccione Objective-C File .
  1. Escriba el nombre de la categoría, seleccione Tipo de archivo: Categoría y luego seleccione la clase base.
  1. Completa el flujo para crear la categoría.

Puede crear un archivo de "extensión" como 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 { }

Hecho. disfrutar de la codificación



Actualización de Xcode6-Beta5

La interfaz ahora ha cambiado y es posible agregar una categoría directamente desde la ventana Nuevo> Archivo.

Ver la respuesta de unmircea .

Yo mismo me sorprendí, y supongo que debido a Swift se olvidaron del buen viejo Objective-C.

Tienes dos opciones:

  1. Cree una clase de Objective-C con el nombre de la categoría, ejemplo UIView+Powerups , luego cambie manualmente la interfaz para que coincida con la de la categoría. Tenga en cuenta que el fragmento de la interfaz y la implementación de la categoría sigue funcionando, por lo que es muy fácil: escriba @interface-category y @implementation-category .

  2. Importarlo desde Xcode 5! Utilice este comando:

    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/

    Cierre y vuelva a abrir Xcode 6 y encontrará "Categoría de Objective-C" en el asistente para el nuevo archivo.