模拟器上的 MFMessageComposeViewController - canSendText?
Posted
技术标签:
【中文标题】模拟器上的 MFMessageComposeViewController - canSendText?【英文标题】:MFMessageComposeViewController on Simulator - canSendText? 【发布时间】:2012-03-10 02:24:11 【问题描述】:以下情况:我想在应用内发送短信。这是我创建 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];
所以我认为这是直截了当的。在模拟器中测试时出现以下异常: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。
提前致谢, 浴缸
【问题讨论】:
【参考方案1】:当您在 OS X Lion 上安装 Messages beta 时会出现此问题。
编辑:当配置并启用 iMessage 帐户时,它也会在 Mountain Lion 上发生。如果帐户被禁用,它可以正常工作(canSendText 返回 NO)。
提示:如果您使用controller.modalTransitionStyle = UIModalTransitionStylePartialCurl
,您可以点击左上角卷曲的“页面”返回模拟器。
【讨论】:
如果安装了 Messages 测试版,canSendText
返回YES
,但视图将变为黑色和空白(无内容)。如果已卸载 Messages 测试版,canSendText
将返回 NO
。 Lion 上的 Xcode 4.4 GM 和 iPhone 5.1 模拟器。
有什么解决办法吗?此错误在带有 XCode 4.6.1 的 Mac OS 10.8.2 上仍然存在。【参考方案2】:
模拟器应该总是从 canSendText 返回 NO,iOS 5.0 和 5.1 模拟器不是这种情况。在 Xcode 4.2 上它崩溃了,在 Xcode 4.3 上它只是推送一个 nil 视图控制器。
【讨论】:
我有同样的问题,正在推送一个 nil 视图,但它甚至发生在我的运行 iOS 5.1 的 iPhone 4 测试设备上【参考方案3】:我看到了同样的事情。我认为这是带有 Xcode 4.3 的 iOS 5 模拟器中的一个错误。 canSendText
在 iOS 4.3 模拟器中正确返回 NO
。相同的代码在设备上运行良好。
【讨论】:
【参考方案4】:使用此配置,canSendText 在模拟器中正确返回 NO(另外,UIAlertView 似乎显示文本消息不可用):
山狮 Xcode 4.4, iOS 5.1【讨论】:
我猜你没有配置和启用 iMessage 帐户。以上是关于模拟器上的 MFMessageComposeViewController - canSendText?的主要内容,如果未能解决你的问题,请参考以下文章
有时无法访问配对手表模拟器上的 WatchConnectivity 会话
模拟器上的 MFMessageComposeViewController - canSendText?