iOS - wait_fences MFMessageComposeViewController

Pet*_*rbo 7 cocoa-touch ios

我正在尝试通过执行以下操作来显示MFMessageComposeViewController视图:

MFMessageComposeViewController *mfMessageComposeVC = [[MFMessageComposeViewController alloc] init];

    if([MFMessageComposeViewController canSendText]) {

        mfMessageComposeVC.body = @"Test.";    
        mfMessageComposeVC.recipients = [NSArray arrayWithObjects:@"123456", @"34567", nil];
        mfMessageComposeVC.messageComposeDelegate = self;
        [self presentModalViewController:mfMessageComposeVC animated:YES];
    }
Run Code Online (Sandbox Code Playgroud)

当我检查日志输出时,我看到此警告消息:

wait_fences: failed to receive reply: 10004003
Run Code Online (Sandbox Code Playgroud)

这种行为的原因是什么?这个警告信息究竟是什么意思?

tob*_*pwn 1

如果您仍在处理此问题(或者其他人稍后遇到此问题):

wait_fences通常意味着您正在屏幕外(或在竞争动画期间)操作 UI - 可能在 内MFMailComposeViewer,或更可能在其后面。wait_fences( Stack 上还有很多其他问题。)

换句话说,问题可能不在于您发布的代码,而在于它周围发生的其他 UI 事件。

如果这样(和搜索)无法解决问题,您可以通过注释掉周围的 UI 相关代码来手动解决问题,直到它起作用,或者(如果失败)将失败的代码减少到最简单的示例版本并将其发布在这里,以便我们进一步排除故障。

(另外,presentModalViewController:animated:在 iOS6 中已弃用,但这个问题是在 iOS5 的太平时期提出的,所以我确信这不是问题。)