我有一个@State
变量,我想给它添加某些约束条件,就像这个简化的例子:
@State private var positiveInt = 0 {
didSet {
if positiveInt < 0 {
positiveInt = 0
}
}
}
然而,这看起来不太好(虽然似乎是有效的),但我真正想做的是以某种方式对属性包装器@State
进行子类化或扩展,以便可以在其setter中添加此约束条件。但我不知道如何实现。这是否可行?
State
是一个结构体,所以你不能对它进行子类化,而且据我所知,你也不能应用多个属性包装器。编写自己的属性包装器可能会起作用,但我不知道你需要与 SwiftUI 的更新循环交互的 API 是什么。很抱歉只能带来这些坏消息。 - gujcibody
属性吗?还是像在UIKit中调用drawRect:
一样,这是一个大大的NO? - turingtestedself.body
,但我认为这可能是被禁止的。 - gujci