在我的应用程序中,我有一个按钮,当按下时会打开一个电子邮件,填写“to”和“subject”,但我在这行代码中收到此警告:
mc.mailComposeDelegate = self;
警告说:
Assigning to 'id<MFMailComposeViewControllerDelegate>'from incompatible type 'ViewController *const_strong'
我该怎么办?请非常清楚,我对xCode不太熟练。
答案 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>.