模拟器上的MFMessageComposeViewController - canSendText?

tub*_*tub 15 sendmessage ios-simulator ios5

以下情况:我想发送应用短信.这是我创建MFMessageComposeViewController的代码:

-(void) showMessageComposerWithText:(NSString*)messageText telNumber:(NSString*)telNumber composeDelegate:(id)delegate
{
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    if([MFMessageComposeViewController canSendText])
    {   
        controller.body = messageText;
        controller.recipients = [NSArray arrayWithObject:telNumber];
        controller.messageComposeDelegate = delegate;

        [delegate presentModalViewController:controller animated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我认为这是直截了当的.在Simulator中测试时,我得到以下异常:Application tried to push a nil view controller on target <MFMessageComposeViewController: 0x8a4e090>.我也想知道为什么在模拟器中运行应用程序时[MFMessageComposeViewController canSendText]返回YES.

在设备上运行时,一切正常.

关于这种奇怪的行为,我在文档/网站上找不到任何内容.

我在OS 10.7.3上运行Xcode 4.3,部署目标是iOS 5.0.

在此先感谢,浴缸

Mar*_*rný 23

在OS X Lion上安装Messages beta时会发生此问题.

编辑:当配置并启用iMessage帐户时,它也会出现在Mountain Lion上.如果帐户被禁用,它可以正常工作(canSendText返回NO).

提示:如果您使用controller.modalTransitionStyle = UIModalTransitionStylePartialCurl,可以通过单击左上角的卷曲"页面"返回模拟器.

  • 如果安装了消息测试版,`canSendText`返回'YES`,但视图将变为黑色和空(无内容).如果卸载了Messages beta,`canSendText`将返回`NO`.Lion上的Xcode 4.4 GM和iPhone 5.1模拟器. (2认同)