2014-05-15 44 views
7

我想將NSString轉換爲NSAttributedString。 但我總是要做將NSString轉換爲不帶alloc的NSAttributedString init

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

是否有任何其他方式,這樣我就不必每次分配Dictionary,但只是給字符串?

+0

這是過早的優化 - 不要做。用最簡潔,最簡單,最清晰的方式編寫代碼,以瞭解這是可能的。那麼如果有問題,使用分析器工具來查找真正的性能問題並修復它們。 – zaph

回答

12

我建議在NSString上創建一個類別,並將其轉換爲NSAttributedString,然後在整個項目中使用該輔助方法。

像這樣:

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

@implementation NSString (AttributedStringCreation) 

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

@end 
+0

感謝您的快速answer.but仍然會分配內存。實際上我有1000string我想要將它們轉換爲屬性string.so我想我不必每次分配init。 –

+1

我會**不會**建議一個類別,這只是污染了蘋果基礎課。只需編寫一個新類,該方法可以是一個類方法,因此不會出現額外的類擴展。 – zaph

+1

賓利敞篷車,白色,我可以嗎?今天交付。等待我會的。但嚴重的實例出現在幕後,他們不是問題。他們是創建一個班級的唯一途徑, – zaph