【问题标题】:Disable "Documentation Comments" warning for selected files禁用选定文件的“文档注释”警告
【发布时间】:2014-06-27 13:34:42
【问题描述】:

Xcode 能够检查文档注释问题并在出现问题时报告警告。例如,我使用 CocoaPods 将 Facebook SDK 添加到我的项目中。在文件FBError.h 的某个位置有以下代码:

/*!
 @typedef NS_ENUM (NSInteger, FBErrorCategory)

 @abstract Indicates the Facebook SDK classification for the error

 @discussion
 */

注意@discussion参数为空,Xcode会相应生成警告:

将空段落传递给“@discussion”命令

但是,Facebook SDK 不是我添加到项目中的唯一库,并且“问题”选项卡中充满了来自我安装的 Pod 的 3rd 方文件的其他文档相关警告。

我想知道如何禁止对这些文件发出这种警告。

【问题讨论】:

标签: xcode documentation warnings


【解决方案1】:

您可以使用这个 sn-p 来抑制警告:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdocumentation"

#import <YourHeader.h>

#pragma clang diagnostic pop

有关详细信息,请参阅此 cocoapod-issue:https://github.com/CocoaPods/CocoaPods/issues/1481(sn-p 来自那里)

【讨论】:

  • 谢谢!在导入标头的任何地方都必须这样做并不是很好,但它比禁用整个目标的警告要好。
  • 如果您为 pragma 设置创建一个宏,则输入更少,即:#define DISABLE_DWARN \ _Pragma("clang diagnostic push") \ _Pragma("clang diagnostic warning \"-Wdeprecated-declarations\" ") 但我认为您不能在宏中使用#import。
  • 我收到警告,除非最后一行是 #pragma clang diagnostic pop
  • 这太棒了。我一直在使用 Xcode 中的 aws-sdk-cpp 库,它会生成数百个“文档问题”警告。这些 pragma 解决了这个问题。
【解决方案2】:

我在使用 cocoapods 时遇到了同样的问题。
如果您正在使用 cocoapods,并且想要消除 pods 文件中的警告,您可以这样做:

  1. 在目标的Build Settings 中,选择All && Levels,然后搜索documentation comments
  2. 然后将项目的documentation comments 更改为NO,将目标的documentation comments 更改为YES
  3. 然后清理构建 floder(按 Command+Option+Shift+K),重新构建您的目标。您将从您的 pod 文件中消除 Document issue 警告,并且仍然将它们用于您自己的文件。
  4. 如果您还想将自己的文件设为静音,请将目标的documentation comments 保留为NO 即可。
  5. 结果将如下所示:

【讨论】:

  • 按照问题中的步骤操作后,文档警告仍然出现,即使在干净重建后也是如此
  • @Raptor 检查目标和项目Documentation Comments,选择左上角的“级别”,查看Resolved 结果是什么,以及覆盖它的内容。
  • 在选择我的 Pods 子项目以使警告消失时,我不得不关闭文档 cmets。
【解决方案3】:

忽略来自 cocoapods 添加的库的警告怎么办?

在你的 podfile 中,添加

inhibit_all_warnings!

删除所有警告

或者

pod 'Facebook-iOS-SDK', :inhibit_warnings => true

从特定库中删除警告。

【讨论】:

  • 谢谢。这对我有用。# Uncomment the next line to define a global platform for your project platform :ios, '10.3' inhibit_all_warnings! pod 'RealmSwift'
猜你喜欢
  • 1970-01-01
  • 2020-06-25
  • 2014-01-29
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 2011-09-13
相关资源
最近更新 更多