2010-12-07 22 views
9

Quiero un NSArray/NSMutableArray que contiene todas las letras del alfabeto. Debe haber una manera rápida y fácil, mejor que tipearlos todos. Por ejemplo en PHP:¿Hay alguna manera fácil de obtener programáticamente el alfabeto?

foreach(range('A','Z') as $i) $alphabet[]=$i; 
+0

¿lo dices en serio? Aquí hay una pista: es casi tan fácil como llenar un nsarray con los números del 0 al 25. –

+0

¿Qué hay de los diferentes idiomas? –

Respuesta

22

No hay manera más rápida de escribir a todos, a menos que cortar y pegar mi referencia práctica desde abajo!

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"


Por el bien de ella, aquí hay un camino más largo.

for (char a = 'a'; a <= 'z'; a++) 
{ 
    [myArray addObject:[NSString stringWithFormat:@"%c", a]]; 
} 
+0

oh querido ... sí, pero escribir un bucle for para usar con un NSMutableArray sería mucho más fácil y mucho más fácil de copiar para otros usos, mientras que escribirlos uno a uno simplemente lleva tiempo. –

+0

¿te importan los alfabetos no estadounidenses con diferentes conjuntos de caracteres? –

+0

no ... solo quiero las letras estándar de UK/US 26. :) oh y 0-9, ¡pero estoy seguro de que puedo manejar ese poco! : p –

0

Puede usar un bucle for para generarlos, pero creo que tipearlos es más fácil. Sin duda es más fácil que publicar una pregunta aquí. ;)

+0

es lo que quiero, el bucle for, pero no sé qué hacer. Ver con php puede hacer un simple for loop ... –

+0

Sí, bueno, no sé mucho sobre el desarrollo de iPhone, pero NSArray parece ser inmutable. Eso sugiere que no podrá agregar elementos usando un bucle for. Puede usar su descendiente: NSMutableArray, o debe declarar el conjunto de una vez. – GolezTrol

+0

Puedes echar un vistazo aquí: http://stackoverflow.com/questions/908742/nsdictionary-objective-c – GolezTrol

6

A veces escribir las letras es lo más fácil. Aquí están como una matriz:

NSArray *letters = [@"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" componentsSeparatedByString:@" "]; 
+0

que es una forma novedosa y útil de hacerlo. sin embargo, el punto es que lleva tiempo escribir cada letra del alfabeto. Las teclas no están en los mejores lugares, y es mucho más natural escribir un bucle for the fly, que escribir el alfabeto (de todos modos). –

+0

Estaba pensando en esto, pero tener que agregar los espacios solo me molesta. Además, escribir manualmente las 26 letras significa que puede cometer un error. :-p –

+0

para ser honesto, mi primer instinto fue utilizar un bucle. este es definitivamente un área donde los idiomas como el rubí son más adecuados. –

4

intente con el siguiente código;


int a = 65; 
for (; a < 91; a++) { 
    [array addObject:[NSString stringWithFormat:@"%c", (char)a]]; 
} 
NSLog(@"%@", array); 
+0

Esa es una buena manera de hacerlo, y gracias por no solo decir "mecanografíalo, vago ..." –

23

También se puede usar la matriz generada para los títulos de índice de tabla. No utiliza un bucle for y tiene soporte para varios idiomas.

NSMutableArray *alphabets = [[NSMutableArray alloc] initWithArray:[[UILocalizedIndexedCollation currentCollation] sectionIndexTitles]]; 

//Remove the last object (extra), '#' from the array. 
[alphabets removeLastObject]; 
+1

+1 para una respuesta perfecta. – damithH

+0

Genio puro. Exactamente lo que buscaba. – PKCLsoft

+0

Obtuve lo que quería en pocas líneas de código. +1 para eso – g212gs

Cuestiones relacionadas