#pragma Clang 诊断的参数被忽略了?

parameters for #pragma clang diagnostic ignored?

提问人:Gon 提问时间:8/17/2018 最后编辑:rmaddyGon 更新时间:11/27/2018 访问量:977

问:

我遇到了警告“实现不可用的方法”,因为我已经实现了该方法,该方法标记为 .我想使用allocWithZone:OBJC_ARC_UNAVAILABLE

#pragma clang diagnostic ignored

忽略它。问题是我找不到响应“实现不可用方法”的参数字符串

以下是我查找的内容,没有关于“实现不可用的方法”或“objc arc 不可用”的项目:

Objective-C Xcode Clang 警告诊断

评论

0赞 James Bucanek 8/17/2018
你需要解释你要完成什么。我想不出一个覆盖的理由,因为内存区域在 Objective-C 中不再使用。+allocWithZone:
0赞 Gon 8/17/2018
@JamesBucanek做这样的事情
0赞 James Bucanek 8/18/2018
那个可怕的宏已经有一个 ARC 友好的实现(正如您会注意到的,它不会覆盖)。因此,有问题的代码根本不应该在启用 ARC 的情况下进行编译。我使用的预处理器测试是 ,它一直对我有用。用它替换该行,看看会发生什么。-allocWithZone:#if __has_feature(objc_arc) && __clang_major__ >= 3#ifdef OBJC_ARC
0赞 Gon 8/20/2018
谢谢@JamesBucanek的回复。这是一个解决方法。但我真正关心的是如何忽略“实现不可用的方法”警告。在哪里可以找到 的所有可用参数。此外,在ARC环境中也有覆盖的版本,实际上会被称为。所以我仍然想在 ARC 中覆盖它,我仍然需要使用#pragma clang diagnostic ignored-allocWithZone#pragma clang diagnostic ignored

答:

1赞 Gon 11/27/2018 #1

查看 Clang 8 文档

CLANG 中的诊断标志

此处列出所有诊断标志。