【问题标题】:SMS through Iphone, MFMessageComposeViewController通过 Iphone、MFMessageComposeViewController 发送短信
【发布时间】:2012-06-29 05:25:30
【问题描述】:

我正在尝试通过设备发送短信。但是上线就崩溃了

[self presentModalViewController:picker animated:YES];

代码:

MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
        picker.messageComposeDelegate = self;

        picker.recipients = rec; // your recipient number or self for testing
        picker.body = billInfo;

        [self presentModalViewController:picker animated:YES];
        [picker release];

错误日志:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <billSummary: 0xfc7e780>.'

【问题讨论】:

  • 您是否使用断点检查选择器是否为零。根据错误日志,它说明选择器为零以呈现模态视图,因此请找出选择器为零的原因

标签: iphone ios mfmailcomposeviewcontroller mfmessagecomposeview


【解决方案1】:

你检查过 +[MFMessageComposeViewController canSendText] 吗?从文档中,

在使用该类之前,您必须始终通过调用 canSendText 类方法检查当前设备是否配置为发送 SMS 消息。如果用户的设备未设置为发送 SMS 消息,您可以通知用户或简单地禁用应用程序中的 SMS 功能。如果 canSendText 方法返回 NO,则不应尝试使用此接口。

它可能不起作用的其他原因:

No SIM card?
Device isn't running iOS 4.
Device is an iPod Touch/iPad.
"Device" is actually the simulator.

【讨论】:

  • 谢谢,我在 ipod 上测试。不错的指南
【解决方案2】:
[self presentModalViewController:picker.view animated:YES];

<MFMessageComposeViewControllerDelegate> 

应该添加到你的类的 .h 中。

MFMessageComposeViewController 是 UINavatigationController 的子类。

所以应用 pushViewController 而不是 presentmodalviewController

【讨论】:

  • 通过传递 picker.view 它会给出不兼容的指针类型警告。
猜你喜欢
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多