这是一个非常奇怪的问题,因为我无法在单独的代码中重现,但我希望有人可以思考原因。我有一个视图,假设 ContentView 的 ContentViewModel 是 ObservedObject,然后还有另一个视图 ContentView2。我们在 ContentView 中有 NavigationView,它将导航链接包装到 ContentView2。这有点奇怪,但是当我们进行一些影响 ContentViewModel 的更改时,NavigationView 会弹出 ContentView2,以便我们最终进入初始 ContentView,但我们没有执行任何操作,例如关闭 ContentView2 或点击后退按钮。我有一个与我的项目中使用的代码类似的代码,但请注意,在此代码中一切正常:
func qrealm() -> Realm {
return try! Realm(configuration: .init( inMemoryIdentifier: "yw"))
}
class SomeRObj: Object {
@objc dynamic var name: String = ""
convenience init(name: String) {
self.init()
self.name = name
}
static var instance: SomeRObj {
return qrealm().objects(SomeRObj.self).first!
}
}
struct SomeRObjWrapped: Hashable {
var obj: SomeRObj
var prop: Int
}
class ContentViewModel: ObservableObject {
@Published var someRObj: [SomeRObjWrapped] = [] …Run Code Online (Sandbox Code Playgroud)