NSString与NSMutableString对连接有什么性能影响?
在Java中,连接两个字符串可能会导致编译器实现两个字符串,从而使其更加优化。如果我使用initWithFormat
NSString
方法来连接两个文字字符串,那么在Objective-C中是否会进行任何此类优化?
此外,我使用NSString
而不是NSMutableString
将变量与文字连接,是否会影响性能?
以下是一个例子:
if (![self.addressField.text hasPrefix:@"http"])
{
NSString* newAddress = [[NSString alloc]
initWithFormat:@"http://%@", self.addressField.text];
[self.addressField setText:newAddress];
[newAddress release];
}
我认为NSMutableString
更类似于Java中的StringBuilder
或StringBuffer
类。这些类更适合串联多个或不确定数量的字符串。如果您在编译时知道只连接 两个字符串,为什么不使用您已经使用的类(NSString
)连接它们?
答案 0 :(得分:-1)
如果你想找出哪个更有效,记录一个时间戳,然后在循环中调用1000次,然后将其更改为NSMutableString并执行相同的操作,您将看到哪个更快。事物的计划是如此小的差异。但如果你想要,你可以减少代码行数:
if (![self.addressField.text hasPrefix:@"http"]){
[self.addressField setText: [NSString stringWithFormat:@"http://%@",self.addressField.text]];
}