Tengo un diccionario NSMutable que contiene ID de archivo y su extensión de nombre de archivo + en la forma simple de fileone.doc o filetwo.pdf. Necesito determinar qué tipo de archivo es para mostrar correctamente un ícono relacionado en mi UITableView. Esto es lo que he hecho hasta ahora.Obtener la extensión de un archivo contenido en un NSString
NSString *docInfo = [NSString stringWithFormat:@"%d", indexPath.row]; //Determine what cell we are formatting
NSString *fileType = [contentFiles objectForKey:docInfo]; //Store the file name in a string
escribí dos expresiones regulares para determinar qué tipo de archivo que estoy viendo, pero nunca devuelven un resultado positivo. No he usado expresiones regex en la programación de iOS antes, así que no estoy del todo seguro de si lo estoy haciendo bien, pero básicamente copié el código de la página Descripción de clase.
NSError *error = NULL;
NSRegularExpression *regexPDF = [NSRegularExpression regularExpressionWithPattern:@"/^.*\\.pdf$/" options:NSRegularExpressionCaseInsensitive error:&error];
NSRegularExpression *regexDOC = [NSRegularExpression regularExpressionWithPattern:@"/^.*\\.(doc|docx)$/" options:NSRegularExpressionCaseInsensitive error:&error];
NSUInteger numMatch = [regexPDF numberOfMatchesInString:fileType options:0 range:NSMakeRange(0, [fileType length])];
NSLog(@"How many matches were found? %@", numMatch);
Mis preguntas serían, ¿hay una manera más fácil de hacer esto? Si no, ¿mi expresión regular es incorrecta? Y finalmente, si tengo que usar esto, ¿es costoso en tiempo de ejecución? No sé cuál será la cantidad promedio de archivos que tendrá un usuario.
Gracias.
Oh, no sabía que NSString tiene la propiedad 'pathExtension' – remy
Objective-C simplemente hace las cosas tan fáciles; ¡No necesito pensar en soluciones tan duras! Gracias David. – TheJer
Estoy contento de no haber intentado y hacer esta función yo mismo – Will