2011-03-04 81 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