Подтвердить что ты не робот

IOS6: MFMailComposeViewController медленно загружает и мигает черным экраном; MailCompositionS начинает записывать память

На iOS 6 после отправки нескольких сообщений электронной почты (с помощью MFMailComposeViewController) экраны электронной почты становятся очень медленными для открытия - при первом открытии ни одного из заполненных полей (без темы, без тела и т.д.) для нескольких секунд, и в конечном итоге (после отправки около 8 сообщений) черный экран отображается пользователю в течение нескольких секунд, прежде чем контроллер электронной почты будет отображаться правильно.

Журнал выводит следующую строку перед отображением каждого черного экрана:

[MFMailComposeRemoteViewController:....] время ожидания ожидания барьер от com.apple.MailCompositionService

Кроме того, использование MFMailComposeViewController в iOS6 приводит к тому, что процесс MailCompositionS начинает работать в режиме hogging memory (он доходит примерно до 260 МБ на моем iPhone). Я предполагаю, что это причина проблем отображения MFMailComposeViewController.

Все отлично работает на iOS 5. Эта проблема возникает только на iOS 6.

Кто-нибудь нашел способ решить эту проблему?

Спасибо!

Код стандартный, но я все равно его включу:

-(IBAction)doEmailLog:(id)sender 
{    
    if( [self canSendMail] )
    {       
        // create the compose message view controller
        MFMailComposeViewController* mailComposer = [[MFMailComposeViewController alloc] init];

        // this class will handle the cancel / send results
        mailComposer.mailComposeDelegate = self;

        // fill in the header and body
        [mailComposer setSubject:@"My Subject"];
        [mailComposer setMessageBody:@"My message body" isHTML:NO];

        // attach log file
        if ([[NSFileManager defaultManager] fileExistsAtPath:filename])
        { 
            NSData *data = [NSData dataWithContentsOfFile:filename];
            [mailComposer addAttachmentData:data mimeType:@"text/plain" fileName:filename];
        }

        // show the view controller
        [self presentViewController:mailComposer animated:YES completion:^{LogTrace(@"Presented mail view controller");}];
    }
    else
    {
        ...
    }
}

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    ...

    // dismiss the compose message view controller
    [self dismissViewControllerAnimated:YES completion:^{LogTrace(@"Finished dismissing mail controller");}];
}
4b9b3361

Ответ 1

на ios 6 почтовый композитор - свое приложение (внутри вашего) :: http://oleb.net/blog/2012/10/remote-view-controllers-in-ios-6/


код выглядит хорошо для меня , если вы используете ARC, иначе он протекает и на ios6, что может привести к удалению x XPC

если все там хорошо, Id обвиняет его в ошибке в Apple, новой обработке XPC

Ответ 2

существует другое возможное решение:

Удалите пользовательские шрифты из методов внешнего вида, если у вас есть

fooobar.com/info/194094/...