ObservableObject 可以在 Swift 中使用吗?我只在 SwiftUI 中看到它的教程。我希望能够通过 API 调用将对象加载到内存中。然后用 VC 去操作它的不同部分,所有后续的 VC 都会响应它。
问问题
68 次
1 回答
0
是的,ObservableObject
即使您不使用 SwiftUI,也可以使用。请记住,使用此功能至少需要 iOS 13。
但如果您不打算ObservableObject
在 SwiftUI 的上下文中使用,请确保您了解它的工作原理。在设置保存更新值的属性之前ObservableObject
发送更新。这是因为对象使用发布者发布。我指出这一点是因为如果您使用已发布的值作为通知您的 VC 新值可用的机制,并且他们通过直接引用已发布的属性来获取该值,他们仍将获得旧值并且您赢了'没有看到你的屏幕更新了新数据。objectWillChange
sink
在 SwiftUI 中使用ObservableObject
时,您通常无需担心objectWillChange
发布者,因为 SwiftUI 视图会在发布者触发时自动更新。由于默认情况下常规视图控制器不知道如何在这些发布者触发时更新自己,因此了解如何在使用 anObservableObject
作为数据模型时实现其更新很重要。
于 2020-05-03T07:09:13.767 回答