Pregunta

¡Sé gentil!Sólo tengo una vaga comprensión de lo que estoy haciendo.

Estoy intentando configurar la propiedad Nombre de UIDocumentInteractionController con la esperanza de que cambie el nombre del archivo antes de enviarlo a otra aplicación.Estoy usando lo siguiente para lograr esto:

UIDocumentInteractionController *documentController;
    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSURL *soundFileURL = [NSURL fileURLWithPath:[docDir stringByAppendingPathComponent:
                                                  [NSString stringWithFormat: @"%@/%@", kDocumentNotesDirectory, currentNote.soundFile]]];  

    NSString *suffixName = @"";
    if (self.mediaGroup.title.length > 10) {
        suffixName = [self.mediaGroup.title substringToIndex:10];
    }
    else {
        suffixName = self.mediaGroup.title;
    }
    NSString *soundFileName = [NSString stringWithFormat:@"%@-%@", suffixName, currentNote.soundFile];

    documentController = [UIDocumentInteractionController interactionControllerWithURL:(soundFileURL)];
    documentController.delegate = self;
    [documentController retain];
    documentController.UTI = @"com.microsoft.waveform-​audio";
    documentController.name = @"%@", soundFileName; //Expression Result Unused error here
    [documentController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

Recibo un error de "Resultado de expresión no utilizado" en esta línea:

documentController.name = @"%@", soundFileName;

Estoy perdiendo la cabeza tratando de resolver esto.Se agradece cualquier ayuda.

¿Fue útil?

Solución

Desafortunadamente no puedes crear una cadena como esta:

documentController.name = @"%@", soundFileName;

@"%@" es literal NSString, pero el compilador no formateará ni reemplazará por usted.Debes realizar una llamada explícita a uno de los métodos constructores de cadenas:

documentController.name = [NSString stringWithFormat:@"%@", soundFileName];

En este caso, sin embargo, ya que soundFileName es en sí mismo un NSString, todo lo que tienes que hacer es asignar:

documentController.name = soundFileName;

La advertencia que estás recibiendo es que el compilador te dice que el bit después de la coma (donde te refieres a soundFileName) está siendo evaluado y luego descartado, y ¿es eso realmente lo que pretendías hacer?

En C, y por tanto en ObjC, la coma es un operador que puede separar declaraciones;cada uno se evalúa por separado.Entonces, esta línea donde recibe la advertencia podría reescribirse:

documentController.name = @"%@";
soundFileName;

Como puede ver, la segunda línea no hace nada en absoluto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top