1

我试图弄清楚如何抑制我没有使用目的的委托方法的编译器警告。我知道我可以有一个空的方法体,但我仍然想找到一种不这样做的方法,所以我的源代码中的代码更少。

我在这里看到了这个答案:动态转发:抑制不完整的实施警告

但这似乎使问题过于复杂。有没有办法在我的 ViewController.h 的头文件中只添加一个衬里,所以我从来没有看到这个警告?

我感谢提供的任何帮助。

作为记录,我想对此方法的警告静音:

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

1 回答 1

2

永远不应消除缺少REQUIRED协议方法警告的声音。

如果它是可选方法,它会被标记为这样并且不会引起警告。根据需要,您只是通过不包含它来要求崩溃。

如果被委托的对象尝试在其委托上调用此方法,而您只是抑制了警告而不是适当地包含它(因为它被标记为required),您的应用程序将崩溃并出现unrecognized selector异常。

如果您想使警告静音,请包含该方法,如果您真的不想在/何时调用此方法时执行任何操作,请将其留空。

例如:

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

一个班轮。

于 2014-06-28T23:58:34.710 回答