我正在尝试使用 Swift Combine 来获取属性的更改事件。
我有这个发布isLogged
属性的类
class CurrentUser: Account {
static let me = CurrentUser() //Singleton
@Published var isLogged: Bool = false
}
从发布该profileImageVersion
属性的其他类继承
class Account {
@Published var profileImageVersion: String?
init(){
self.profileImageVersion = ""
}
}
我正在尝试订阅这样的已发布继承profileImageVersion
属性,但没有成功!
// Subscribe to account image changes
userImageChangedSubscriber = CurrentUser.me.$profileImageVersion.receive(on: DispatchQueue.main).sink(receiveValue: { (imageVersion) in
...
}
})
错误是Fatal error: Call of deleted method
另一方面,如果我订阅了该isLogged
属性,则一切正常...
// Subscribe to logged changes
userLoggedSubscriber = CurrentUser.me.$isLogged.receive(on: DispatchQueue.main).sink(receiveValue: { (logged) in
...
})
此错误仅在 Xcode 11.4 beta 2 / iOS 13.4 上引发。
使用 Xcode 11.3.1 / 13.3 一切正常!