2011-11-17 52 views
2

我有一段文本必须被解析。这是一种像iPhone - 关于内存使用情况的NSString和NSMutableString之间的区别

“亲爱的$名字,我们需要您的$车辆,喇嘛喇嘛的注册号为”模板......长

想象这1000个字,用了很多关键的变量,如$名称,$车辆等

该文本存储在#define

在运行时,我必须分析这个模板等20个类似的,与真实值替换关键变量,像“亲爱的约翰,......”。

我使用的是NSString变量来存储的初始文本,然后将这些线

NSString *start = TEMPLATE1; 
start = [start stringByReplacingOccurrencesOfString:NAME withString:realName]; 
start = [start stringByReplacingOccurrencesOfString:VEHICLE withString:realVehicle]; 

等一个与代码工作又快又好,但使用NSMutableString用于启动可变有人建议,作为它会使用更少的内存。
这是正确的吗?
它值得改变吗?

+0

如果有少量的文字,这将是一个相当可以忽略的差异。 – chown

+0

所以当任何人使用NSMutableString?我从来没有和文件似乎没有指定任何用例。 – TigerCoding

+0

@chown文字很大,大约需要解析10,000个字符(统计所有20个模板)。 – SpaceDog

回答

0

它可以合理地做到这一点:

NSMutableString *text = [NSMutableString stringWithString:TEMPLATE1]; 
[text replaceOccurrencesOfString:NAME withString:realName options:0 range:NSMakeRange(0, [text length])]; 
[text replaceOccurrencesOfString:VEHICLE withString:realVehicle options:0 range:NSMakeRange(0, [text length])]; 

但是,如果你的代码已经是“工作又快又好”,我不会刻意改变它。

+0

好吧。谢谢! – SpaceDog

相关问题