2014-05-15 16 views
7

Ich möchte NSString in NSAttributedString konvertieren. Aber ich habe immerkonvertieren NSString in NSAttributedString ohne alloc init

NSAttributedString *useDict1=[[NSAttributedString alloc] initWithString:@"String"]; 

Gibt es eine andere Art und Weise so zu tun, dass ich muß die Dictionary nicht jedes Mal vergeben, sondern nur die Zeichenfolge geben?

+0

Dies ist verfrühte Optimierung - dont es tun. Schreiben Sie Ihren Code auf die sauberste, einfachste und klarste Art zu verstehen, was möglich ist. Wenn Probleme auftreten, verwenden Sie die Profiler-Tools, um die tatsächlichen Leistungsprobleme zu ermitteln und zu beheben. – zaph

Antwort

12

Ich würde vorschlagen, eine Kategorie in NSString mit einer Methode zu erstellen, die es in NSAttributedString konvertiert und dann diese Hilfsmethode in Ihrem Projekt verwenden.

So:

@interface NSString (AttributedStringCreation) 
    - (NSAttributedString *)attributedString; 
@end 

@implementation NSString (AttributedStringCreation) 

- (NSAttributedString *)attributedString { 
    return [[NSAttributedString alloc] initWithString:self]; 
} 

@end 
+0

danke für die schnelle answer.but noch wird es den Speicher zuweisen.Aktiv habe ich 1000string, wo ich sie in attributierte string.so ich will, dass ich nicht zu jeder Zeit init allokieren. –

+1

Ich würde ** nicht ** eine Kategorie vorschlagen, die nur eine Apple Foundation-Klasse verschmutzt. Schreiben Sie einfach eine neue Klasse, die Methode kann eine Klassenmethode sein, so dass keine zusätzliche Klassenerweiterung auftritt. – zaph

+1

Bentley Cabrio, in weiß, kann ich haben? Heute geliefert. Warte, ich werde es tun. Aber ernsthafte Instanziierungen treten die ganze Zeit hinter den Kulissen auf, sie sind kein Problem. Sie sind die einzige Möglichkeit, eine Klasse zu erstellen, – zaph

Verwandte Themen