1

使用する目的のないデリゲート メソッドに対するコンパイラの警告を抑制する方法を見つけようとしています。空のメソッド本体を使用できることはわかっていますが、これを行わない方法を見つけたいので、ソースのコードを減らします。

ここでこの回答を見ました:動的転送:不完全な実装の警告を抑制

しかし、それは問題を複雑にしすぎているようです。ViewController.h のヘッダー ファイルに 1 つのライナーを含めるだけで、この警告が表示されない方法はありますか?

提供されたヘルプに感謝します。

記録のために、このメソッドの警告を黙らせたいと思っています:

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
                                  didResumeAtOffset:(int64_t)fileOffset
                                 expectedTotalBytes:(int64_t)expectedTotalBytes;
4

1 に答える 1

2

欠落しているREQUIREDプロトコル メソッドの警告は、決して黙らせてはなりません。

オプションのメソッドである場合は、そのようにマークされ、警告は発生しません。必須であるため、含めないことでクラッシュを要求しているだけです。

委任されているオブジェクトがそのデリゲートでこのメソッドを呼び出そうとしたときに、警告を適切に含めるのではなく、単に警告を抑制した場合 (必須とマークされているため)、アプリは例外でクラッシュunrecognized selectorます。

警告を黙らせたい場合は、メソッドを含めて、これが呼び出された場合に本当に何もしたくない場合は、空のままにしてください。

例えば:

- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes {};

一発ギャグ。

于 2014-06-28T23:58:34.710 に答える