2012-03-14 26 views
5

私は現在、特定のメッセージを傍受し、誰にも転送しないで処理するだけなので、これらのメソッドは実際には存在しません。ここで問題が出てくるのは明らかに、コンパイラはメソッドの実装が不足していると文句を言うようになり、メソッドを停止する方法を理解できず、インターフェイスにスタブメソッドを追加するだけで、私はそれらを先に知らない(少し具体的にするために、私はthisプロジェクトを求めている)。インスタンスメソッドを無効にする警告

理想的には、この特定のクラスを調べるメソッドを何もしてはいけないということをコンパイラーに伝えたいと思いますが、これはむしろ普及していないようです。#pragmaまたは他の方法

答えて

1

あなたのスイッチステートメントは、実際には任意ではなく、任意の長さにすることができます。幅広い長さの場合、コンパイラの利益のために宣言することができます(警告をオフにした場合はエラーチェックを受け取ります)。例:

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 

問題が発生する可能性が高いレベルを繰り返します(問題が発生した場合はレベルを追加できます)。ちょっと退屈ですが、難しくありません。

+0

これは最後に強制されていない 'default'では動作しません... – JustSid

+0

またはうまく動作しますが、ほとんど時間がなくても大きくて厄介になります。 – JustSid

+0

ちょっとグーグルで調べたところ、唯一の選択肢だと思われます(しかし、 '#pragma'のためのレーダーを提出しました)...私は本当に解決策には満足していませんが、今。 – JustSid

関連する問題