mercredi 22 février 2012

Une catégorie de cas Camel

J'ai récemment eu besoin de convertir un nom d'attribut de base de données, qui utilise camel case, Afin qu'ils puissent être affichés comme des mots en majuscule pour une utilisation dans une étiquette. Cela me donne la possibilité d'étiqueter les lignes de base de données un détail soutenue édition vue sans avoir à spécifier manuellement les étiquettes.

J'ai décidé de ne pas utiliser cette option parce que j'aurais perdu la capacité à localiser mon application depuis mon noms des attributs sont toujours et uniquement en anglais. Mais, j'ai pensé que je jette cette catégorie pour ceux qui en auraient besoin. Cette fonctionnalité pourrait bien utile, par exemple, lors de la construction d'un utilitaire développeur de base de données.

NSString-CamelCase.h
#import <Foundation/Foundation.h>


@interface NSString(CamelCase)
-(NSString *)stringByConvertingCamelCaseToCapitalizedWords;
@end


NSString-CamelCase.h
#import "NSString-CamelCase.h"

@implementation NSString(CamelCase)
-(NSString *)stringByConvertingCamelCaseToCapitalizedWords {

NSMutableString *ret = [NSMutableString string];

for (NSUInteger i = 0; i < [self length]; i++) {
unichar oneChar = [self characterAtIndex:i];
if ([[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:oneChar])
[ret appendFormat:@" %C", oneChar];
else
[ret appendFormat:@"%C", oneChar];
}

return [[ret capitalizedString] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}

@end



Aucun commentaire: