Dado que está utilizando un bucle, tenga cuidado con las soluciones de Tom y Benjie. Cada uno de ellos crea un objeto autoreleasado extra por iteración. Para un bucle pequeño, está bien, pero si el tamaño del bucle no tiene límites o si las cuerdas son grandes, esto puede provocar un pico de memoria muy grande y un golpe de rendimiento. Particularmente en el iPhone, este es exactamente el tipo de bucle que puede conducir a problemas de memoria sorprendentes debido a picos de memoria de vida corta.
La siguiente solución tiene una huella de memoria más pequeña (también es un poco más rápida y requiere menos tipeo). Tenga en cuenta la llamada al -appendFormat:
en lugar de -appendString
. Esto evita crear una segunda cadena que será desechada. Recuerde que la cadena final tiene un espacio extra al final del que puede desear deshacerse. Puede solucionarlo tratando la primera o la última iteración de forma diferente o recortando el último espacio después del bucle.
NSMutableString* theString = [NSMutableString string];
for (int i=0; i<=10;i++){
[theString appendFormat:@"%i ",i];
}
label.text = theString;
No olvide [NSArray componentsJoinedByString:]
. En este caso, no tiene un NSArray, pero en los casos comunes en que lo hace, esta es probablemente la mejor manera de obtener lo que está buscando.
Un poco tarde pero inicializa su matriz con el tamaño 2, por lo que el índice más alto sería 1, pero está haciendo un [2] = 3; lo que causaría un error fuera de límites. – Jonny