SOLUCIONADO (Gracias Regexident)Nombre de archivo NSString añade% innecesaria en el espacio 20
Tengo una aplicación que pasa la ruta del archivo de un PDF a un método init encargo -(id)init
. Se agrega a la tabla y cuando se selecciona, llama a la sentencia else para un archivo inexistente:
- (void) gridView:(AQGridView *)gridView didSelectItemAtIndex:(NSUInteger)index {
NSLog (@"Selected theArgument=%d\n", index);
UIViewController *viewController = [[[UIViewController alloc]init]autorelease];
{
//if file is built-in, read from the bundle
if (index <= 3)
{
// first section is our build-in documents
NSString *fileURLs = [_documentIconsURLs objectAtIndex:index];
NSLog(@"file url -%@", fileURLs);
viewController = [[[xSheetMusicViewController alloc]initWithContentURL:fileURLs]autorelease];
}
//if file is external, read from URL
else
{
// second section is the contents of the Documents folder
NSString *fileURL = [_documentIconsURLs objectAtIndex:index];
NSLog(@"file url -%@", fileURL);
NSString *path;
NSString *documentsDirectoryPath = [self applicationDocumentsDirectory];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [[paths objectAtIndex:0] stringByAppendingPathComponent:fileURL];
if ([[NSFileManager defaultManager] fileExistsAtPath:documentsDirectoryPath])
{
viewController = [[[xSheetMusicViewController alloc]initWithDocumentURL:fileURL]autorelease];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure!" message:@"The Selected File Does Not Exist"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
[alert release];
return;
}
}
[self.navigationController setNavigationBarHidden:YES animated:NO];
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.navigationController.view cache:YES];
[self.navigationController pushViewController:viewController animated:NO];
[UIView commitAnimations];
}
}
Así que cada vez que tengo un documento sin espacio en su nombre, que empuja y ensu. Pero cuando el nombre del archivo tiene un espacio, dice que no existe. Y cuando elimino el método if-else, es init, pero se cuelga porque el archivo no existe. Intenté reemplazar el% 20 en la ruta del archivo con un espacio común, pero el método continúa llamando a la parte else.
Entonces, ¿la ruta del archivo no está estandarizada y es legible, o el método de mi otro es incorrecto?
A juzgar por el "% 20" y la nomenclatura variable ("... URL") en su código, parece que está confundiendo URL de archivos (codifica espacios como "% 20", etc.) con rutas de archivos (usa espacios, etc.) – Regexident
la url del archivo se convierte en una cadena en un método de apple del ejemplo documentInteraction. Sin embargo, la url se pasa a un controlador no DI. Entonces, ¿cómo lo arreglo? – CodaFi