ARC の前に、「X may not response to xxx」という警告が表示されました。これは、コンパイルを妨げない無害な警告です。現在、プロジェクトを ARC に変換しようとしていますが、「No visible @interface for X はセレクター xxx を宣言しています」というエラーが発生し、コンパイルできません。
私は自分が何をしているのか、なぜ警告が表示されたのかを正確に知っています。プログラムは正しいと言えます。以前は、コンパイラは問題なくコンパイルしており、コンパイルを停止する必要はありません。
クラス X のインターフェイスがそのセレクターを宣言していないことは事実ですが、X は、(Objective-C の優れた点の 1 つです)を使用して、送信されたセレクターを持つメッセージを動的に処理するforwardInvocation:
クラスであるため、そのインターフェイスはおそらく不可能です。その上で呼び出すことができるすべてのセレクターを宣言します。そして、セレクターは、X ではなく、どこかで宣言されています。