Ошибка возникает из-за того, что вы объявили тип Output
как Setup
, но вы вызываете objectWillChange с Void
.
Таким образом, вы должны передать self в objectWillChange:
self.objectWillChange.send(self)
Важно отметить, что вы должны вызывать objectWillChange
не в didSet
, а в willSet
:
var somevalueBool: Bool {
willSet{
objectWillChange.send(self
}
}
Вы никогда не установите somevalueBool, поэтому этот бит кода будетне вызывать в любом случае.
Ваша установка должна выглядеть примерно так:
class Setup: ObservableObject {
private var notificationSubscription: AnyCancellable?
public let objectWillChange = PassthroughSubject<Setup,Never>()
@UserDefault(key: "keyValueBool", defaultValue: false)
var somevalueBool: Bool
init() {
notificationSubscription = NotificationCenter.default.publisher(for: UserDefaults.didChangeNotification).sink { _ in
self.objectWillChange.send(self)
}
}
}