'id <mfmailcomposeviewcontrollerdelegate>'来自不兼容类型'ViewController * const_strong'</mfmailcomposeviewcontrollerdelegate>

时间:2012-09-21 19:07:51

标签: objective-c xcode mfmailcomposeviewcontroller

在我的应用程序中,我有一个按钮,当按下时会打开一个电子邮件,填写“to”和“subject”,但我在这行代码中收到此警告:

mc.mailComposeDelegate = self; 

警告说:

Assigning to 'id<MFMailComposeViewControllerDelegate>'from incompatible type 'ViewController *const_strong'

我该怎么办?请非常清楚,我对xCode不太熟练。

2 个答案:

答案 0 :(得分:5)

此警告表示您尚未告诉编译器您的类ViewController实现了MFMailComposeViewControllerDelegate协议。

如果您还没有这样做,请从该协议实施所有必需的方法。在你的情况下,它只有一个(– mailComposeController:didFinishWithResult:error:)。

之后你必须告诉编译器你的类实现了这个协议。您可以通过将<MFMailComposeViewControllerDelegate>添加到ViewController的@interface来执行此操作。 (接口位于头文件ViewController.h中。)

您的界面现在应该与此类似:

@interface ViewController : UIViewController <MFMailComposeViewControllerDelegate>

@property ...

@end

答案 1 :(得分:3)

我有同样的问题。问题是我正在实施错误的协议,我怀疑你可能会做同样的事情。

在视图控制器头文件中不要写: @interface ViewController : UIViewController <MFMessageComposeViewControllerDelegate>

相反,使用: @interface ViewController : UIViewController <MFMailComposeViewControllerDelegate>.