2011-03-04 44 views
0

我在应用程序的电子邮件现在正在工作,但我得到一个编译警告。我想解决这个问题,任何帮助或建议,将不胜感激。iPhone在应用程序邮件编译警告

我收到此警告。

/Users/vikings1201/Documents/iPhone应用程序/ LittleTipper_4.0/tipApp/Classes/tipAppViewController.m:1083:0/Users/vikings1201/Documents/iPhone应用程序/ 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]; 
} 

回答

1

它试图保护你免受.delegate属性设置为一个对象,可能不会实现委托方法。

在你的.h文件中,你需要声明它实现了委托协议。

@interface myVC : UIViewController <MFMailComposeViewControllerDelegate> 
{ 
... 
} 
+0

谢谢,这解决了它。 – Vikings

0

应该很简单。您需要添加为tipAppViewController.h文件中由tipAppViewController实现的接口。像这样的东西。

@interface tipAppViewController : UIViewController<MFMailComposeViewControllerDelegate> { 

你已经正在实现 - mailComposeController:didFinishWithResult:错误:它只是需要在你的头文件。

0

MFMailComposeViewController预计能够发送某些消息到其代表。这些消息被定义为一个协议。您正在将代理设置为tipAppViewController类的实例,但该类不实现此协议。你需要a)实现所需的方法,b)将类定义为实现该协议。

请参阅:Learning Objective-C: A Primer