Ich habe eine Kategorie wie folgt definiert:Nein Weiß Klasse Methode in NSString Kategorie
#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
ich einen Fehler auf der Linie self = [self stringByReplacingOccurrencesOfString:@"#" withString:@""];
bin immer das sagt: "No know class method for selector stringByReplacingOccurrencesOfString:withString" and "cannot assign self in a class method"
.
Ich bin verwirrt, warum ich nicht in der Lage bin, dies in einer NSString Category
zu tun. Ich habe gesehen examples online, die Dinge sehr ähnlich mit "Selbst" in einer NSString Category
so bin ich nicht sicher, warum es hier nicht funktioniert.
Wer weiß, was ich falsch mache?
Im Allgemeinen sollten Sie keine Kategorien zu Systemklassen hinzufügen. Wenn Sie dies tun, sollten Sie ihnen etwas _leven _... vorsetzen, um Kollisionen zu vermeiden. Dies würde wahrscheinlich auch als eine Kategorie auf UIColor (als Klassenmethode) sinnvoller sein, da es wie eine Farbfabrik-Methode ist. – bbum