5

私は現在、NSProxy特定のメッセージをインターセプトし、それらを誰にも転送せず、処理するだけのサブクラスに取り組んでいるため、これらのメソッドは実際には存在しません。そしてここに問題があります、明らかにコンパイラは欠落しているメソッド実装について不平を言い始めます、そして私はそれを止める方法を理解できません、コンパイラをシャットダウンさせるためだけにインターフェイスにスタブメソッドを追加することはメソッドが機能しないためですは恣意的に形成されており、私はそれらを先に知りません(もう少し具体的に言うと、私はこのプロジェクトを求めています)。

理想的には、この特定のクラスをチェックするメソッドをまったく実行しないようにコンパイラーに伝えたいのですが、これはかなりありそうもないので、#pragmaまたは他の方法(シャットダウンを含まない)にも満足します。プロジェクト/ファイル全体のすべての警告に対してコンパイラが起動します!)

4

1 に答える 1

1

switchステートメントは実際には任意ではなく、任意の長さである可能性があります。さまざまな長さの場合、コンパイラーの利益のために先に進んで宣言することができます(その後、警告をオフにした場合にはエラーチェックが行われます)。例えば:

typedef void (^ObjCCaseBlock)();

@interface NSObject ()
- (id)switch;
- (void)case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
@end

発生する可能性のあるレベル数だけ繰り返します(問題が発生した場合は、レベルを追加できます)。少し面倒ですが、難しくはありません。

于 2012-03-14T19:25:16.363 に答える