如何消除MFMessageComposeViewController的显示延迟?

mar*_*n's 5 iphone messageui

if([MFMessageComposeViewController canSendText])
{
    MFMessageComposeViewController *sms_message_vc = [[MFMessageComposeViewController alloc] init];
    sms_message_vc.body = text;
    sms_message_vc.recipients = recipients;
    sms_message_vc.messageComposeDelegate = self; 
    [self presentModalViewController:sms_message_vc animated:FALSE];
    [[UIApplication sharedApplication] setStatusBarHidden:TRUE];
    [sms_message_vc release];
}
Run Code Online (Sandbox Code Playgroud)

执行此操作时,在实际显示撰写视图之前会有几秒钟的延迟.造成这种情况的原因是什么以及如何消除延迟?

编辑1:澄清:制作sms_message_vc和ivar没有帮助,因为该...alloc] init]过程将挂起UI几秒钟,无论它在哪里.

编辑2:尝试GCD(具有不同的优先级)以尝试同时运行初始化.没有帮助:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, (unsigned long)NULL), ^(void){
    sms_message_vc = [[MFMessageComposeViewController alloc] init];
    sms_message_vc.messageComposeDelegate = self; 
});
Run Code Online (Sandbox Code Playgroud)

Eri*_*ric 0

考虑将 MFMessageComposeViewController *sms_message_vc 设为类实例变量并调用:

MFMessageComposeViewController *sms_message_vc = [[MFMessageComposeViewController alloc] init];
Run Code Online (Sandbox Code Playgroud)

早些时候,以及在启动后将委托设置为self右侧sms_message_vc

然后就做:

sms_message_vc.body = text;
sms_message_vc.recipients = recipients;
[self presentModalViewController:sms_message_vc animated:FALSE];
[[UIApplication sharedApplication] setStatusBarHidden:TRUE];
[sms_message_vc release];
Run Code Online (Sandbox Code Playgroud)

当您想实际发送消息时。这不会改变太多,但可能会有所帮助。