3

Xcodeとobj-cの初心者の質問です。

私のプロジェクトでは、アプリを使用せずにSMSメッセージを送信するIBActionのボタンがあります(プロジェクトにリンクされたMessageUI)。iOS 5 コードでは問題なく動作しましたが、最新の Xcode で同じプロジェクトを開いて iOS 6 用に再コンパイルすると、次の警告が表示 れました。

ご清聴ありがとうございました!

4

3 に答える 3

3

この画像を見て:

http://uaimage.com/image/e71f051f

MFMailComposeViewControllerDelegateではなく、 MFMessageComposeViewControllerDelegateを使用する必要があります

于 2012-11-11T21:24:08.507 に答える
1

うーん...本当に奇妙なことが起こった。

私のプロジェクト構造は次のとおりです。

YourProject (Root of the project with Xcode Project Icon)
    /YourProject (Folder)
        /Group X (Nested Folder)
            /SomeViewController.h
        /Group Y (Nested Folder)
            /Group Y1 (Nested Folder)
                /OtherViewController.h
            /Group Y2 (Another Nested Folder)
                /YetAnotherViewController.h

MFMessageComposeViewControllerDelegate と MFMailComposeViewControllerDelegate を使用するクラス SomeViewController は正常に動作しました。

...
@interface SomeViewController : UIViewController <MFMessageComposeViewControllerDelegate, MFMailComposeViewControllerDelegate> {}
...

同じ MFMessageComposeViewControllerDelegate と MFMailComposeViewControllerDelegate を使用するクラス OtherViewController と YetAnotherViewController はコンパイルされません!

エラーは次のとおりです。

  • 「MFMessageComposeViewControllerDelegate」のプロトコル宣言が見つかりません

および/または

  • 「MFMailComposeViewControllerDelegate」のプロトコル宣言が見つかりません。

そのため、インポートをチェックして再チェックし、すべてのメソッドと ViewControllers が同じであることを宣言しました。相違点はデータ オブジェクトの名前だけでした。

最後に、解決策は本当にばかげていました! ネストされたフォルダーを 1 レベル上に移動することで、この煩わしさを解決しました。すべてがうまくコンパイルされます!

どうやらライブラリのインポート (プロジェクトにライブラリを追加するとき) は、サブグループのファイルに到達しません! XCode と iOS 6 のバグだと思いますが、同じエラーが発生していました。

グループはプロジェクト構造内の仮想フォルダー (ファイル システムにはありません) であるため、これは非常に奇妙です。

私は時間と誰かを頭痛から救いたいと思っています!

于 2012-12-04T20:22:14.520 に答える
0

MFMessageComposeViewControllerDelegateヘッダー (.h) ファイルに追加します。

例:UIViewController< MFMessageComposeViewControllerDelegate>

于 2012-10-28T18:19:29.757 に答える