追加一個字符串我有一些這樣的代碼:有效地保持與另一個字符串
-(void)updateString: (NSString*)str {
self.buffer = [self.buffer stringByAppendingString:str];
self.string = [self.buffer stringByAppendingString:@"Always at the end of self.string"];
}
輸入:
self.buffer: "blah\n"
self.string: "Always at the end of self.string"
str: "Hello\n"
輸出:
self.buffer: "blah\nHello\n"
self.string: "blah\nHello\nAlways at the end of self.string"
如果updateString
被稱爲非常頻繁,當self.buffer
變得越來越大時,它會引起性能問題嗎?看起來這會遭受類似於Schlemiel the Painter's algorithm的效率低下。
如果是這樣,我該怎麼做才能提高我的天真實施?使用NSMutableString
代替self.buffer
?
NSMutableString是要走的路。簡單而高效,並且可以說不是「過早優化」,因爲它在一些情況下比非可變字符串方法更簡單。 –