MFMessageComposeViewController alloc returns nil(MFMessageComposeViewController alloc 返回 nil)
问题描述
在我的应用程序中,MFMailComposeViewController 工作正常,但创建 MFMessageComposeViewController 的新实例失败.
In my application, MFMailComposeViewController works fine but creating a new instance of MFMessageComposeViewController fails.
这是两者的代码:
-( IBAction)sendSMS: (id)sender
{
MFMessageComposeViewController *picker = [[[MFMessageComposeViewController alloc] init] autorelease];
picker.messageComposeDelegate = self;
NSArray *toRecipients = [NSArray arrayWithObject: cell.currentTitle ];
picker.recipients = toRecipients;
[self presentModalViewController:picker animated:YES];
}
-( IBAction)sendEmail: (id)sender
{
MFMailComposeViewController *picker = [[[MFMailComposeViewController alloc] init] autorelease];
picker.mailComposeDelegate = self;
NSArray *toRecipients = [NSArray arrayWithObject: email.currentTitle ];
[picker setToRecipients:toRecipients];
[self presentModalViewController:picker animated:YES];
}
看起来一切都正确链接,因为电子邮件视图控制器工作正常.有什么我遗漏的东西可能是配置方面的吗?
Its seemingly obvious that everything is linking correctly because the email view controller works fine. Is there something I am missing maybe configuration wise?
推荐答案
你检查过+[MFMessageComposeViewController canSendText]吗?
来自 MFMessageComposeViewController 类参考,
在呈现消息组合视图之前,调用 canSendText 类方法以确保用户的设备已正确配置.如果 canSendText 方法返回 NO,请不要尝试显示消息组合视图.如果 SMS 传送不可用,您可以通知用户或直接在您的应用程序中禁用 SMS 功能.
Before presenting a message composition view, call the
canSendTextclass method to ensure that the user’s device is appropriately configured. Do not attempt to present a message composition view if the canSendText method returns NO. If SMS delivery isn’t available, you can notify the user or simply disable the SMS features in your application.
从 iOS 5 开始,您可以注册以通过 MFMessageComposeViewControllerTextMessageAvailabilityDidChangeNotification 通知的方式接收短信发送可用性更改的通知.
Starting in iOS 5, you can register to be notified of changes to the availability of text message sending by way of the MFMessageComposeViewControllerTextMessageAvailabilityDidChangeNotification notification.
可能返回 nil 的原因:
- 设备未运行 iOS 4.
- 设备是未启用 iMessage 的 iPod Touch/iPad.
- 没有 SIM 卡?(该视图现在显示在 iOS 6 中;应用不会收到消息发送失败的通知.)
- 设备"其实就是模拟器.(也许这也适用于 iOS 6.)
同样,[[MFMailComposeViewController alloc] init] 在未启用邮件帐户时返回 nil(您可以通过在设置中禁用帐户来快速测试),但也会显示为您提供未配置邮件帐户"警报.MFMessageComposeViewController 不这样做.
Similarly, [[MFMailComposeViewController alloc] init] returns nil when no mail accounts are enabled (you can quickly test this by disabling accounts in Settings), but also shows a "No mail accounts configured" alert for you. MFMessageComposeViewController does not do this.
这篇关于MFMessageComposeViewController alloc 返回 nil的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:MFMessageComposeViewController alloc 返回 nil
基础教程推荐
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- iOS4 创建后台定时器 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
