如果我创建一个新的@State
变量,它什么时候会被销毁?它的生命周期是在父UIHostingController
中吗?
据我所知,这并没有被记录下来。这很重要,因为如果我在视图层次结构中的某个位置上将ObservableObject
作为State
创建,我不知道如何清理它。
import SwiftUI
struct Example: View {
@State private var foo = Foo()
var body: some View {
Text("My Great View")
}
}
class Foo: ObservableObject {
deinit {
// When will this happen?
print("Goodbye!")
}
}
state
或SwiftUI
不是很熟悉,但它不仅基于Foo
的类型,即如果它是引用类型,则每当其保留计数降至零时。如果它是变量类型,则您实际上不需要关心它们的生命周期。 - mfaanideinit
的。 - Wil GieselerObservableObject
作为State
至少是一个误解,它必须与ObservedObject
配对使用。此外...属性包装器State
(和ObservedObject
)是结构体,值类型。 - Asperi