2
私はちょうど警告(コンパイラの抑制なし)を避けたいですが、私のファイルにいくつかのインクルードを追加したくありません。ここに私のコードは次のとおりです。ここでプロトコルフォワード宣言の警告はどうですか?
@protocol MyProto;
// ...
Protocol *p = @protocol(MyProto);
は、私が得た警告している:リテラルプロトコル(@protocol
)を使用して
@protocol is using a forward protocol declaration of MyProto [-Wat-protocol]
オプションはありません。タイプを定義する前に、コード内のタイプを使用することはできません。これはクラスにも当てはまります。 – Avi
@Aviはプロトコル 'MyProto'が実行時に存在しない場合、' Protocol * p'のようには見えません。たぶん、これは警告メッセージです。 – k06a
いいえ。警告は、それが意味することを意味します。型を定義する前に型を使用しています。コンパイラは、プロトコルに含まれているものがわからないため、プロトコルの使用をタイプチェックできないことを警告します。 – Avi