在我的应用中,我有电子邮件发送代码。
这是非常普通的(粘贴在问题末尾)。
以下顺序: - 单击我的应用程序的“EMAIL”按钮,该按钮调用sendEmail方法 - 单击“收件人”字段 - 键入电子邮件地址 - 单击MFMailComposer发送按钮 - 电子邮件已发送(并且已到达 - 我通常设置自己的电子邮件地址) - 应用程序崩溃...使用此堆栈爬行:
2011-07-25 11:21:21.179 MyApp[2769:3d0b] -[__NSCFString searchQuery:returnedResults:]: unrecognized selector sent to instance 0x3c3410
2011-07-25 11:21:21.201 MyApp[2769:3d0b] uncaughtExceptionHandler
2011-07-25 11:21:21.202 MyApp[2769:3d0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString searchQuery:returnedResults:]: unrecognized selector sent to instance 0x3c3410'
我注意到以下情况: 1.当我输入To地址时,调试器输出显示 CPSqliteStatementSendResults:中断 2.如果我添加 setToRecipients (有效地“硬编码” To 电子邮件地址),应用程序不会崩溃......
有什么想法吗? (以下代码)
- (void)sendEmail:(id)sender {
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"The Subject"];
[self presentModalViewController:controller animated:YES];
[controller release];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error;
{
switch (result)
{
case MFMailComposeResultCancelled:
break;
case MFMailComposeResultSaved:
break;
case MFMailComposeResultSent:
break;
case MFMailComposeResultFailed:
NSLog(@"Sending Failed");
break;
default:
NSLog(@"Message not sent");
break;
}
[self dismissModalViewControllerAnimated:YES];
}
答案 0 :(得分:0)
尽量不要立即释放MFMailComposeViewController但是在他的委托方法didFinishWithResult中(最后)。