我最近遇到一个案例,有人在 init 方法中添加了一个参数,并破坏了另一个共享代码的项目。由于这只是一个警告,没有人意识到该应用程序已损坏,因此我试图仅将此警告变为错误:
warning: instance method '-someMethod' not found (return type defaults to 'id')
我发现您可以将 Other C Flags 中的 -Werror=foo 传递给 Xcode 中的编译器,以将警告转换为错误,但我似乎找不到 'foo' 应该是什么。我已经尝试过“未声明的选择器”,但这只捕获了@selector 案例。我试过 -Werror-implicit-function-declaration 但这似乎也没有抓住这种情况。
在偶然搜索巨大的 clang 源代码期间找到“warn_inst_method_not_found”后,我尝试了“inst-method-not-found”和“instance-method-not-found”。
帮助 ... ?
更新: 这是一个您可以编译的示例(例如在 CodeRunner 中)以查看警告:https ://gist.github.com/4045701