Esto debería ser fácil, pero estoy teniendo dificultades para encontrar la solución más fácil.Crear NSString repitiendo otra cadena un número determinado de veces
Necesito un NSString
que es igual a otra cadena concatenada consigo mismo un determinado número de veces.
Para una mejor explicación, considere el siguiente ejemplo pitón:
>> original = "abc"
"abc"
>> times = 2
2
>> result = original * times
"abcabc"
¿Alguna pista?
EDIT:
que iba a publicar una solución similar a la que por Mike McMaster's answer, después de mirar esta implementación de los OmniFrameworks:
// returns a string consisting of 'aLenght' spaces
+ (NSString *)spacesOfLength:(unsigned int)aLength;
{
static NSMutableString *spaces = nil;
static NSLock *spacesLock;
static unsigned int spacesLength;
if (!spaces) {
spaces = [@" " mutableCopy];
spacesLength = [spaces length];
spacesLock = [[NSLock alloc] init];
}
if (spacesLength < aLength) {
[spacesLock lock];
while (spacesLength < aLength) {
[spaces appendString:spaces];
spacesLength += spacesLength;
}
[spacesLock unlock];
}
return [spaces substringToIndex:aLength];
}
Código reproducida a partir del archivo:
Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSString-OFExtensions.m
en el marco OpenExtensions del Omni Frameworks por The Omni Group.
+1 para hacerlo todo en una sola llamada a la biblioteca estándar. Y así es como lo usé para crear una lista de signos de interrogación separados por comas (para alimentar a SQLite) - '[@" "stringByPaddingToLength: [fields count] * 2-1 withString: @"? "StartingAtIndex: 0] '. – noamtm