我有一个observableObject
类,它保存一些数据。
可观测类
class UserManager:ObservableObject {
@Published
var profile:userProfileModel = userProfileModel()
@Published
var settings:Settings = Settings()
@Published var currentView:String
@Published var isLoggedIn:Bool
并且我创建它并将其从CCD_ 2作为CCD_。
场景电报
@StateObject var userManager = UserManager()
let contentView = loginRoot().environmentObject(userManager)
问题是我有一个与服务器同步的singleton类,我需要更新UserManager
类中的数据。
辛格尔顿类
public class UserModelAPI {
@ObservedObject var userManager: UserManager = UserManager()
public static let shared = UserModelAPI()
func syncServer() {
userManager.isLoggedIn = true
}
但它根本不起作用。我不能发布来自singleton类的更改。
在您的单例中,您有一个新的UserManager((,它与SceneDelegate不同"StateObject var userManager&";,这可能就是为什么它没有像你预期的那样工作。在你的场景中试试这个。电报:
@StateObject var userManager = UserModelAPI.shared.userManager