我有一个用于发送电子邮件和短信的应用。
我遇到的问题是,在iOS 7上加载MFMessageComposeViewController比在之前的iOS上慢得多,随着联系人数量的增加,它变得更糟。
在消息应用程序打开并加载了内容之前,屏幕变黑了几秒钟。
有什么想法吗?
使用相同数量的电子邮件,MFMailComposeViewController比以前更快。
帮助!! 感谢。
答案 0 :(得分:4)
我有同样的问题。我用
为作曲家提供了强有力的参考@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];
}
}
作曲家看起来很快但消失得很慢。最终确定:
- (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之后),它失败了。
答案 1 :(得分:1)
对于iMessage收件人,我也遇到了这个问题。
似乎与iCloud的iMessage同步历史相关联。我有4个收件人,第一个Apple iMessage对话框弹出约需30秒。
等待这一次后,我取消了发送,下一次重复尝试很快就解决了 - 这个结果,再加上iOS7在作曲家视图中显示消息历史记录(iOS7之前没有),这导致我得出的结论是Apple在弹出视图之前正在等待某种iCloud同步。
这在iPhone 4和具有不同iCloud帐户的新iPhone 5s上都有所体现,因此它对我的iCloud帐户或收件人来说似乎没有硬件限制或独特。
我没有针对此问题的确认解决方案,但我有一些解决方法建议进一步调查:
答案 2 :(得分:1)
此问题已通过iOS7.0.3修复