gpt4 book ai didi

swift - 警告 : Attempting to access 'myProperty' within its own getter vs SwiftFormat

转载 作者:搜寻专家 更新时间:2023-10-31 22:18:50 25 4
gpt4 key购买 nike

我有这样的代码:

@IBInspectable var myProperty: String? {
set(newValue) {
//logic for setter
}
get {
return myProperty
}
}

上面的代码产生了一个警告:

Attempting to access 'myProperty' within its own getter. Access 'self' explicitly to silence this warning.

所以我按照建议修改代码:

@IBInspectable var myProperty: String? {
set(newValue) {
//logic for setter
}
get {
return self.myProperty
}
}

问题会解决,但我正在使用 SwiftFormat在应用程序构建阶段。并且 SwiftFormat 自动删除了 self 关键字,在这里将其视为不必要的。

我看到两个解决方案:

  1. 关闭 SwiftFormat 中的 redundantSelf 规则。
  2. 修改(如何?)编译器和 SwiftFormat 都可接受的代码。

最好的选择是什么?

最佳答案

首先您的代码不正确。添加 self 将无济于事。

您创建的是无限递归。当 myProperty 的 getter 被调用时,您返回 myProperty,它再次调用 getter。在 getter 中,您再次返回 myProperty,这将再次调用 getter。这将永远持续下去,直到堆栈溢出。

如果你只想要一个自定义的 setter,你可以尝试 willSetdidSet

var myProperty: String {
willSet(newValue) {
// do stuff
}
}

// or

var myProperty: String {
didSet(oldValue) {
// do stuff
}
}

关于swift - 警告 : Attempting to access 'myProperty' within its own getter vs SwiftFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com