Estendendo classes com categorias no Xcode para iOS

Uma categoria estende a funcionalidade das classes integradas da Apple sem subclasses. Fazemos isso criando, em primeiro lugar, um cabeçalho e um arquivo de implementação para a categoria usando o modelo de categoria Objective-C. Em seguida, adicionamos nosso método ao arquivo .m da categoria:

#import "UIColor+seeThroughBlue.h"

@implementation UIColor (seeThroughBlue)
+(UIColor*)seeThroughBlueColor {
return [UIColor colorWithRed:0 green:0 blue:1 alpha:0.5];
}
@end

(Observação: estou estendendo o UIColor e chamei a categoria de seeThroughBlue – o Xcode adicionou UIColor + aos nomes de arquivo por conveniência)

Em seguida, precisamos adicionar este método ao arquivo .h:

#import <UIKit/UIKit.h>

@interface UIColor (seeThroughBlue)
+(UIColor*)seeThroughBlueColor;
@end

Você notará que o nome da categoria (verThroughBlue) não é o mesmo que o nome do arquivo, porque não precisa ser.

Por fim, para torná-lo disponível globalmente, o adicionamos ao arquivo appName-Prefix.pch (na pasta de arquivos de suporte):

#import <Availability.h>

#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif

#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/ Foundation.h>
#import "UIColor+seeThroughBlue.h"

#endif

Agora, se quisermos chamar o novo método de nossa categoria, podemos fazê-lo sem importar nada extra. Por exemplo, dentro de um de nossos métodos de controlador de visualização, podemos escrever:

self.view.backgroundColor=[UIColor seeThroughBlueColor];

E isso é tudo, não há necessidade de importar a categoria para os arquivos .h e .m do controlador de visualização.

Postagem de blog completa: http://sketchytech.blogspot.co.uk/2012/09/extending-classes-with-categories-in.html