Xcode 13.3 神奇地将函数调用更改为 属性 访问
Xcode 13.3 magically changing a function call into a property access
一夜之间,我的 Xcode 更新到了 13.3。从那以后,我在编译时遇到错误。
我有一个方法,现在叫做xxxxasdfxxxx()
。它出现在 if
语句的最后一行。例如:
if let state = ...,
let field = state....,
!field.xxxxasdfxxxx()
{
}
每当我编译时,代码都会神奇地从一个方法变为 属性。所以上面的代码突然看起来像:
if let state = ...,
let field = state....,
!field.xxxxasdfxxxx {
请注意,它甚至还移动了左大括号。我不知道这是否相关。
这是一个重大变化,我不知道为什么要这样做。显然函数的名字并不重要,因为我已经改了好几次了。有趣的是,我在项目的另一部分有一段相同的代码没有被神奇地改变。
有没有人知道为什么会发生这种情况以及如何解决它?
我在使用 Xcode 13.3 时遇到了同样的问题,我不知道是什么原因造成的。但我找到了一个适合我的解决方案,并且可以在没有更多问题的情况下构建应用程序。
只需从 de 方法的调用中删除 ! 并使用 == false 代替,如下所示:
if let state = ...,
let field = state....,
field.xxxxasdfxxxx == false {
这似乎也发生在我身上。设置值 == false
似乎有效,但我们有太多实例需要更改。看了之后,似乎是我们的 SwiftLint 实例。果然,将 SwiftLint 更新到最新版本 (0.47.0) 解决了这个问题。如果您安装了 linter,我建议您仔细检查一下。
我在 Xcode 13.4 中遇到了同样的问题,我使用此命令行更新 SwiftLint 解决了它:brew upgrade swiftlint
一夜之间,我的 Xcode 更新到了 13.3。从那以后,我在编译时遇到错误。
我有一个方法,现在叫做xxxxasdfxxxx()
。它出现在 if
语句的最后一行。例如:
if let state = ...,
let field = state....,
!field.xxxxasdfxxxx()
{
}
每当我编译时,代码都会神奇地从一个方法变为 属性。所以上面的代码突然看起来像:
if let state = ...,
let field = state....,
!field.xxxxasdfxxxx {
请注意,它甚至还移动了左大括号。我不知道这是否相关。
这是一个重大变化,我不知道为什么要这样做。显然函数的名字并不重要,因为我已经改了好几次了。有趣的是,我在项目的另一部分有一段相同的代码没有被神奇地改变。
有没有人知道为什么会发生这种情况以及如何解决它?
我在使用 Xcode 13.3 时遇到了同样的问题,我不知道是什么原因造成的。但我找到了一个适合我的解决方案,并且可以在没有更多问题的情况下构建应用程序。
只需从 de 方法的调用中删除 ! 并使用 == false 代替,如下所示:
if let state = ...,
let field = state....,
field.xxxxasdfxxxx == false {
这似乎也发生在我身上。设置值 == false
似乎有效,但我们有太多实例需要更改。看了之后,似乎是我们的 SwiftLint 实例。果然,将 SwiftLint 更新到最新版本 (0.47.0) 解决了这个问题。如果您安装了 linter,我建议您仔细检查一下。
我在 Xcode 13.4 中遇到了同样的问题,我使用此命令行更新 SwiftLint 解决了它:brew upgrade swiftlint