iOS 7上的MFMessageComposeViewController慢得多

我有一个发送电子邮件和短信的应用程序。

我遇到的问题是,在iOS 7上加载MFMessageComposeViewController比在之前的iOS上慢得多,随着联系人数量的增加,它变得更糟。

在消息应用程序打开并加载了内容之前,屏幕变黑了几秒钟。

有什么想法吗?

使用相同数量的电子邮件,MFMailComposeViewController与以前一样快。

帮帮我!! 谢谢。

iOS7.0.3修复了此问题

我也有同样的问题。 我为composer php提供了强有力的参考

@property (nonatomic, strong, retain) MFMessageComposeViewController *messageComposer; 

然后所有者类调用此方法:

 -(void)sendSMSFromController:(UIViewController*)controller { self.messageComposer = [MFMessageComposeViewController new]; if([MFMessageComposeViewController canSendText]) { [_messageComposer setBody:_body]; [_messageComposer setRecipients:[NSArray arrayWithObjects:_recipient, nil]]; [_messageComposer setMessageComposeDelegate:self]; [controller presentViewController:_messageComposer animated:NO completion:NULL]; } } 

Composer出现得很快但消失得很慢。 最终确定:

 - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { switch (result) { case MessageComposeResultCancelled: NSLog(@"Message sending cancelled."); break; case MessageComposeResultFailed: NSLog(@"Message sending failed."); break; case MessageComposeResultSent: NSLog(@"Message sent."); default: break; } [controller dismissViewControllerAnimated:YES completion:^(){ self.messageComposer = nil; }]; } 

重新启动设备后,它显然有效。 在重新启动之前(通过发送无效收件人搞乱MessageService之后),它失败了。

对于iMessage收件人,我也遇到了这个问题。

似乎与iCloud的iMessage同步历史相关联。 我有4个收件人,第一个Apple iMessage对话框弹出约需30秒。

在等待一次之后,我取消了发送,下一次重复尝试快速解决 – 这个结果,再加上iOS7在composer php视图中显示消息历史(iOS7之前没有),这让我得出结论,Apple在弹出视图之前,正在等待某种iCloud同步。

这在iPhone 4和具有不同iCloud帐户的新iPhone 5s上再现,因此它似乎不是硬件限制或我的iCloud帐户或收件人独有。


我没有针对此问题的确认解决方案,但我有一些解决方法建议进一步调查:

  • 我们的一些用户报告说重启设备可以解决此问题。
  • 升级到iOS7后,每个唯一的iMessage收件人可能会收取“1次费用”。