Я создал приложение, в котором пользователь использует переднюю камеру, чтобы делать снимки и отправлять их по электронной почте, и приложение никогда не переходит в фоновый режим не менее 8 часов; приложение отображается в офисе и всегда должно быть на переднем плане. Все происходит в UIViewController.Управление памятью MFMailComposeViewController
Проблема с MFMailComposeViewController, особенно с памятью, которую он потребляет. В «Инструменты - Монитор активности» есть MailCompositionS, который продолжает увеличиваться при использовании реальной памяти.
Мой код:
- (void)emailPhoto
{
NSString *emailTitle;
NSString *messageBody;
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:emailTitle];
[mc setMessageBody:messageBody isHTML:NO];
NSData *dataImage = UIImageJPEGRepresentation(photoView.image, 0.4);
[mc addAttachmentData:dataImage mimeType:@"image/jpeg" fileName:@"image.jpg"];
[self presentViewController:mc animated:YES completion:nil];
mc = nil;
dataImage = nil;
}
- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:^{
[self backToCamera];
}];
}
Я действительно не понимаю, что может быть проблема. С или без вложения изображения MailCompositionS продолжает увеличиваться в потреблении памяти, и поскольку приложение всегда остается в этом UIViewController и никогда не переходит в фоновый режим, память никогда не выпускается.
PS Я не обнаруживаю утечек.
Мне нужно использовать несколько раз MFMailComposeViewController, если я Alloc Инициализировать viewDidLoad во второй раз мне нужно отправить по электронной почте не будет работать. – Macaret