J'ai une catégorie telle que définie:No Know Classe Méthode NSString Catégorie
#import <Foundation/Foundation.h>
@interface NSString (MyApp)
+ (UIColor *)colorFromHexString;
@end
#import "NSString+MyApp.h"
@implementation NSString (MyApp)
+ (UIColor *)colorFromHexString
{
self = [self stringByReplacingOccurrencesOfString:@"#" withString:@""];
unsigned rgbValue = 0;
NSScanner *scanner = [NSScanner scannerWithString:hexString];
[scanner scanHexInt:&rgbValue];
return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)/255.0 green:((rgbValue & 0xFF00) >> 8)/255.0 blue:(rgbValue & 0xFF)/255.0 alpha:1.0];
}
@end
Je reçois une erreur sur la ligne self = [self stringByReplacingOccurrencesOfString:@"#" withString:@""];
qui dit: "No know class method for selector stringByReplacingOccurrencesOfString:withString" and "cannot assign self in a class method"
.
Je suis confus quant à pourquoi je ne suis pas capable de le faire dans un NSString Category
. J'ai vu examples online qui fait des choses très similaires avec 'self' dans un NSString Category
donc je ne sais pas pourquoi cela ne fonctionne pas ici.
Quelqu'un sait ce que je fais mal?
En général, vous ne devez pas ajouter de catégories aux classes système. Si vous le faites, vous devriez les préfixer avec quelque chose '_vente _...' pour éviter les collisions. En outre, cela aurait probablement plus de sens en tant que catégorie sur UIColor (comme une méthode de classe), car c'est un peu comme une méthode d'usine de couleur. – bbum