Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone sdk中的MFMessageComposer ViewController问题_Iphone_Mfmailcomposeviewcontroller - Fatal编程技术网

iPhone sdk中的MFMessageComposer ViewController问题

iPhone sdk中的MFMessageComposer ViewController问题,iphone,mfmailcomposeviewcontroller,Iphone,Mfmailcomposeviewcontroller,我正在尝试实现一个SMS应用程序。在这种情况下,当我尝试发送短信时,我在[self.navigationController presentModalViewController:picker-animated:YES]处遇到了一个异常;。我对这个很陌生。你们能帮帮我吗?。我的代码如下 MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; picker.delegate =

我正在尝试实现一个SMS应用程序。在这种情况下,当我尝试发送短信时,我在[self.navigationController presentModalViewController:picker-animated:YES]处遇到了一个异常;。我对这个很陌生。你们能帮帮我吗?。我的代码如下

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

picker.recipients = [NSArray arrayWithObject:@"123456789"]; // your recipient number or self for testing
picker.body = @"test from OS4";

[self.navigationController 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 <UINavigationController: 0x5b2c120>.
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“应用程序试图在目标上呈现一个无模式视图控制器。
提前感谢,,
S.

该消息意味着
选取器
nil
,即MFMessageComposeViewController未成功创建

确保
[MFMessageComposeViewController canSendText]
返回YES,即

 if (![MFMessageComposeViewController canSendText]) {
    // show message box for user that SMS cannot be sent
 } else {
    MFMessageComposeViewController* picker = ...;
    ...
 } 

我想到三件事

首先,您是否已将视图控制器类声明为ImplementMFMailComposeViewControllerDelegate?您是否定义了mailComposeController:didFinishWithResult:error:

第二,您可以有:[自我呈现ModalviewController:picker动画:是]


第三,你确定picker不是nil吗?

很可能你是在iPhone模拟器中测试的,MFMessageComposeViewController在模拟器上不工作,并返回nil

模态视图将引发nil异常的主要原因通常与被测设备没有在设置中配置电子邮件帐户有关(因此关于模态视图在模拟器中不工作的其他注释)@肯尼特的回答是一个很好的处理方法。只需弹出一个警告对话框通知用户

是,我有委托,我定义了mailComposeController:didFinishWithResult:error:。选择者为零,但如何使其不为零?你听从肯尼特的建议了吗?如果是,那么+canSendText返回什么?谢谢。现在我知道问题出在哪里了