难以理解SwiftLint错误/警告日志

时间:2019-04-16 17:31:20

标签: swift swiftlint

以下是我的swiftlint日志的摘录:

  

MyViewController.swift:187:21:警告:违反空字符串:相对于将isEmpty与空字符串文字进行比较,更喜欢检查string。 (空字符串)
  整理'MyDataSource.swift'(570/578)

在上面的日志中,187:21是什么? 什么是(570/578)?

1 个答案:

答案 0 :(得分:3)

您问:

  

什么是187:21?什么是(570/578)?

  • “ 570/578”是578的文件570。

  • “ 187:21”是第187行第21列。

您说:

  

[it]的行数不像MyViewController.swift只有90行代码

如果您的源文件中实际上只有90行,包括代码,注释,空行等,我将无法调和您的电话号码。

如果实际上只有90行,则可能不是在您认为的目录上运行此行。或者,也许您还有这个文件的另一个副本,尽管它不是您的编译源的一部分,但仍缠着哪个swiftlint。也许有一些带有附加行的后处理文件。但是冒号分隔的数字始终是“ line:column”。


顺便说一句,您可以配置Xcode项目在构建过程中执行swiftlint(请参阅README.md的{​​{3}}部分),并在Xcode中显示警告,就像它一样对所有其他Xcode编译时警告执行此操作,从而简化了将警告/错误消息与自己的代码相关联的过程。 (例如,点击警告,立即跳转至相关代码)。


为了说明line:column语法,这是我在Xcode中的构建日志中的一条消息,表明我的特定警告位于第18行的第17列:

Xcode

这是导致该警告的示例源文件,在其中您可以看到此行号和列号正是问题出在我的代码中(并且由于我从Xcode运行swiftlint,它向我显示了错误也在我的IDE中):

console log