Swift中的共享数据模型

问题描述 投票:-1回答:1

ObservableObject可以在Swift中使用吗?我只在SwiftUI中看到过它的教程。我希望能够通过API调用将一个对象加载到内存中。然后使用VC来操作它的不同部分,所有后续的VC都会对它做出响应。

swift mvvm observable viewmodel observableobject
1个回答
0
投票

是的,你可以使用 ObservableObject 即使你没有使用SwiftUI。请记住,使用这个需要最低的iOS 13。

但如果你不打算使用 ObservableObject 在SwiftUI的上下文中,确保你了解它的工作原理。ObservableObject 发送更新 之前 属性的更新值被设置。这是因为对象的 出版 使用 objectWillChange 出版商。我之所以指出这一点,是因为如果你使用了 sink 作为一种机制,通知您的VC有了新的值,而他们通过直接引用已发布的属性去抓取该值,他们仍然会得到旧的值,您不会看到您的屏幕更新了新的数据。

当使用 ObservableObject 在SwiftUI中,你一般不需要担心的是 objectWillChange 发布者,因为SwiftUI视图会在该发布者触发时自动更新。由于常规的视图控制器默认情况下不知道如何在这些发布者触发时更新自己,因此在使用 ObservableObject 作为数据模型很重要。

© www.soinside.com 2019 - 2024. All rights reserved.