我的应用内电子邮件现在正在运行,但我收到了编译警告。我想解决这个问题,任何帮助或建议都将不胜感激。
我收到了这个警告。
/ Users / vikings1201 / Documents / iPhone Applications / LittleTipper_4.0 / tipApp / Classes / tipAppViewController.m:1083:0 / Users / vikings1201 / Documents / iPhone Applications / LittleTipper_4.0 / tipApp / Classes / tipAppViewController.m: 1083:警告:类'tipAppViewController'没有实现'MFMailComposeViewControllerDelegate'协议
-(IBAction)sendMail {
MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease] ;
mailComposer.mailComposeDelegate = self;
if ([MFMailComposeViewController canSendMail]) {
[mailComposer setToRecipients:nil];
[mailComposer setSubject:nil];
[mailComposer setMessageBody:@"Default text" isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
}
}
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error {
[controller dismissModalViewControllerAnimated:YES];
}
答案 0 :(得分:1)
它试图保护您不将.delegate
属性设置为可能未实现委托方法的对象。
在.h文件中,您需要声明它实现了委托协议。
@interface myVC : UIViewController <MFMailComposeViewControllerDelegate>
{
...
}
答案 1 :(得分:0)
应该很简单。您需要在tipAppViewController.h文件中添加tipAppViewController实现的接口。这样的事情。
@interface tipAppViewController : UIViewController<MFMailComposeViewControllerDelegate> {
您已经在实现 - mailComposeController:didFinishWithResult:错误:它只需要在您的头文件中。
答案 2 :(得分:0)
MFMailComposeViewController
期望能够向其代理发送某些消息。消息被定义为协议。您正在将委托设置为tipAppViewController
类的实例,但该类未实现此协议。您需要a)实现所需的方法,b)将类定义为实现该协议。