4

私のアプリには、押すと「to」と「subject」と入力されたメールを開くボタンがありますが、次のコード行で次の警告が表示されます。

mc.mailComposeDelegate = self; 

警告は言う:

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

私は何をしますか?はっきりさせてください。私はxCodeにあまり熟練していません。

4

2 に答える 2

5

この警告は、クラスがプロトコルをViewController実装していることをコンパイラに通知していないことを示しています。MFMailComposeViewControllerDelegate

まだ行っていない場合は、そのプロトコルから必要なすべてのメソッドを実装します。あなたの場合、それはたった1つです(– mailComposeController:didFinishWithResult:error:)。

その後、クラスがこのプロトコルを実装していることをコンパイラに通知する必要があります。これを行うには、ViewControllerのにを追加<MFMailComposeViewControllerDelegate>します。@interface(インターフェイスはヘッダーファイルViewController.hにあります)。

これで、インターフェースは次のようになります。

@interface ViewController : UIViewController <MFMailComposeViewControllerDelegate>

@property ...

@end
于 2012-09-22T22:06:06.147 に答える
3

私も同じ問題を抱えていました。問題は、私が間違ったプロトコルを実装していたことでした。あなたが同じことをしているのではないかと思います。

ビューコントローラのヘッダーファイルには、次のように記述しないでください。 @interface ViewController : UIViewController <MFMessageComposeViewControllerDelegate>

代わりに、以下を使用してください。 @interface ViewController : UIViewController <MFMailComposeViewControllerDelegate>.

于 2013-03-17T09:38:11.933 に答える