2012-04-30 1 views
2

Я пытаюсь подключить wav-файл из приложения iOS, но вложение не доставлено, даже если оно отображается в сложенном письме.Объектив C - вложения через MFMailComposeViewController не отображается

Heres соответствующий код:

if ([MFMailComposeViewController canSendMail]) { 
    MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init]; 
    controller.mailComposeDelegate = self; 
    [controller setSubject:NSLocalizedString(@"mailTopic", nil)]; 
    [controller setMessageBody:NSLocalizedString(@"mailBody", nil) isHTML:YES]; 
    NSString *wavPath = [self exportAssetAsWaveFormat:self.myRec.soundFilePath]; // CAF->Wav export 

    if (wavPath != nil) { 
     NSLog(@"wavPath: %@", wavPath); 
     NSData *recData = [NSData dataWithContentsOfFile:wavPath]; 
     NSString *mime = [self giveMimeForPath:wavPath]; 
     [controller addAttachmentData:recData mimeType:mime fileName:@"MySound.wav"]; 
     [self presentModalViewController:controller animated:YES]; 
     [controller release]; 
    } 
} 


-(NSString *) giveMimeForPath:(NSString *)filePath { 
    NSURL* fileUrl = [NSURL fileURLWithPath:filePath]; 
    NSURLRequest* fileUrlRequest = [[NSURLRequest alloc] initWithURL:fileUrl cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:.1]; 
    NSURLResponse* response = nil; 

    [NSURLConnection sendSynchronousRequest:fileUrlRequest returningResponse:&response error:nil]; 
    NSString* mimeType = [response MIMEType]; 
    NSLog(@"MIME: %@", mimeType); 
    [fileUrlRequest release]; 

    return mimeType; 
} 

Результаты NSLog:

NSLog (@ "wavPath:% @", wavPath); -> "wavPath: /var/mobile/Applications/71256DCA-9007-4697-957E-AEAE827FD97F/Documents/MySound.wav"

NSLog (@ "MIME:% @", mimeType); -> "MIME: аудио/WAV" путь

Файл швы, чтобы быть в порядке (см данные NSLog), а также тип мим установлен в "аудио/WAV" .. Cant это цифра ..

ответ

0

Может быть пункт назначения снимает вложения этого типа? Вы пытались вручную отправить сообщение с помощью .wav и посмотреть, работает ли он? У меня была та же проблема, что и в Zendesk. Оказывается, они снимают привязки для некоторых миметиков.

+0

Я видел другие приложения в состоянии отправить wav. – r0yalty

+0

Ок, кажется, что это проблема: NSData * recData = [NSData dataWithContentsOfFile: wavPath]; при тестировании длины объекта данных он всегда равен 0, но не нул. – r0yalty

2

Ошибка в том, что WAV-файл не был 100% написана к тому времени я создаю NSData из него .. duuuh

Спасибо за усилия ребят

Смежные вопросы