Blog: Janeiro 2016

“Adicionando” métodos em Classes Nativas (Objective C)

Essa eu aprendi com um cara aqui da empresa. 🙂

Sempre que precisava de um método novo em uma classe que já existia em Java, eu tinha que criar uma nova classe que herdava desta e criar o método:
public class MyArrayList extends ArrayList {
          public void sort() {
         
          }
}
Para usar, tinha que substituir a instância para esta classe:
//De: ArrayList a = new ArrayList(); 
//Para:
MyArrayList a = new MyArrayList();
a.sort();
Mas em Objective C existe uma coisa interessante, se eu quiser criar um método em uma classe já existente, basta colocar uma “categoria” para ela. Por exemplo: quero criar um método chamado parseJSON na classe NSString (que já existe na API da Apple):
/*
 * NSString+JSON.h
 */
@interface NSString (NSString_JSON)
– (NSDictionary*) parseJSON;
@end
/*
 * NSString+JSON.m
 */
@implementation NSString (NSString_JSON)
– (NSDictionary*) parseJSON
{
}
@end
Agora, qualquer objeto do NSString possue este método (sem eu precisar mudar a classe da variável!):
NSString* str = @“{a:1, b:2}”;
NSDictionary* dict = [str parseJSON];
Muito interessante 🙂
Valeu, Koga, pela dica!
Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da **Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do **programador java.