10

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

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

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

有什么想法吗?

对于同样大量的电子邮件,MFMailComposeViewController 和以前一样快。

帮助!!谢谢。

4

3 回答 3

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 之后)它失败了。

于 2013-11-21T17:31:49.127 回答
1

此问题已在 iOS7.0.3 中修复

于 2013-10-24T13:01:16.387 回答
1

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

似乎与从 iCloud 下载的 iMessage 同步历史记录有关。我有 4 个收件人,第一个 Apple iMessage 对话框弹出大约需要 30 秒。

在等待了一次之后,我取消了发送,下一次重复尝试很快就解决了——这个结果,加上 iOS7 在作曲家视图中显示消息历史记录的事实(iOS7 之前没有),让我得出结论,Apple在弹出视图之前正在等待某种 iCloud 同步。

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


对于这个问题,我没有确定的解决方案,但我有一些解决方法可以建议进一步调查:

  • 我们的一些用户报告说重新启动设备可以解决此问题。
  • 这可能是升级到 iOS7 后每个唯一 iMessage 收件人的“1 次费用”。
于 2013-09-27T17:55:54.670 回答