Каковы значения производительности 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
более похожим на StringBuilder
или StringBuffer
классы в Java. Эти классы больше подходят для объединения нескольких или неопределенного количества строк. Если во время компиляции вы знаете, что объединяете только две строки, почему бы не объединить их, используя уже используемые классы (NSString
)?