iPhone In App Mail编译警告

时间:2011-03-04 19:32:25

标签: iphone objective-c ios4 iphone-sdk-3.0

我的应用内电子邮件现在正在运行,但我收到了编译警告。我想解决这个问题,任何帮助或建议都将不胜感激。

我收到了这个警告。

/ 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];
}

3 个答案:

答案 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)将类定义为实现该协议。

请参阅:Learning Objective-C: A Primer