trying to resolve leak

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-15 09:09:24 -05:00
parent 1d30735948
commit 166ecf461d
2 changed files with 23 additions and 17 deletions

View File

@ -45,10 +45,12 @@ extension Publishers {
private func subscribe() {
guard let publisher = modelHandler?.modelPublisher else { return }
publisher.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
guard let self else { return }
_ = self.subscriber?.receive(viewModel)
}.store(in: &subscribers)
publisher
.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main)
.sink { [weak self] viewModel in
_ = self?.subscriber?.receive(viewModel)
}
.store(in: &subscribers)
}
}
}
@ -59,8 +61,10 @@ extension ModelHandlerable {
}
public func createBinding(with subject: CurrentValueSubject<ModelType, Never>, storeIn subscriptions: inout Set<AnyCancellable>) {
handlerPublisher().sink { (value) in
subject.send(value)
}.store(in: &subscriptions)
handlerPublisher()
.sink { (value) in
subject.send(value)
}
.store(in: &subscriptions)
}
}

View File

@ -30,15 +30,17 @@ extension ModelHandlerable {
}
}
public func setupUpdateView() {
modelPublisher.filter { [weak self] viewModel in
guard let self else { return false}
return self.shouldUpdateView(viewModel: viewModel)
}.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in
guard let self else { return }
self.updateView(viewModel: viewModel)
}.store(in: &subscribers)
public func setupUpdateView() {
modelPublisher
.filter { [weak self] viewModel in
return self?.shouldUpdateView(viewModel: viewModel) ?? false
}
.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main)
.sink { [weak self] viewModel in
self?.updateView(viewModel: viewModel)
}
.store(in: &subscribers)
}
}