Я пытаюсь подключить 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 это цифра ..
Я видел другие приложения в состоянии отправить wav. – r0yalty
Ок, кажется, что это проблема: NSData * recData = [NSData dataWithContentsOfFile: wavPath]; при тестировании длины объекта данных он всегда равен 0, но не нул. – r0yalty