Если вы используете Какао в Python, то вы можете просто сделать это, так как PyObjC наполняет NSString
всеми возможностями класса Python unicode
.
В противном случае есть два пути.
Один - создать массив с одной и той же строкой n
раз и использовать componentsJoinedByString:
. Примерно так:
NSMutableArray *repetitions = [NSMutableArray arrayWithCapacity:n];
for (NSUInteger i = 0UL; i < n; ++i)
[repetitions addObject:inputString];
outputString = [repetitions componentsJoinedByString:@""];
Другой способ - начать с пустого NSMutableString
и добавить к нему строку n
раз, например:
NSMutableString *temp = [NSMutableString stringWithCapacity:[inputString length] * n];
for (NSUInteger i = 0UL; i < n; ++i)
[temp appendString:inputString];
outputString = [NSString stringWithString:temp];
Вы можете отключить вызов stringWithString:
, если вы можете вернуть изменяемую строку здесь. В противном случае вам, вероятно, следует вернуть неизменяемую строку, и здесь сообщение stringWithString:
означает, что у вас есть две копии строки в памяти.
Поэтому я рекомендую решение componentsJoinedByString:
.
[Редактировать: Заимствованная идея использовать …WithCapacity:
методы из Ответ Майка МакМастера .]