trying to fix memory leak
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
01cfa940c7
commit
80e23e190a
@ -12,6 +12,10 @@ import VDSColorTokens
|
||||
import Combine
|
||||
|
||||
class CheckboxViewController: UIViewController, StoryboardInitable {
|
||||
deinit {
|
||||
print("\(Self.self) deinit")
|
||||
}
|
||||
|
||||
enum PickerType {
|
||||
case surface
|
||||
}
|
||||
@ -73,19 +77,18 @@ class CheckboxViewController: UIViewController, StoryboardInitable {
|
||||
//create the subject
|
||||
let modelSubject = CurrentValueSubject<DefaultCheckboxModel, Never>(model)
|
||||
|
||||
//assign - this will auto overwrite any changes
|
||||
modelSubject.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).assign(to: \.model, on: self).store(in: &subscribers)
|
||||
|
||||
//bind
|
||||
checkbox.createBinding(with: modelSubject, storeIn: &subscribers)
|
||||
|
||||
//update the model
|
||||
//print out on subject changes
|
||||
modelSubject.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] model in
|
||||
|
||||
self?.showErrorSwitch.isOn = model.hasError
|
||||
print("CheckboxViewController hasError: \(model.hasError)")
|
||||
print("CheckboxViewController selected: \(model.selected)")
|
||||
|
||||
modelSubject
|
||||
.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main)
|
||||
.sink { [weak self] updatedModel in
|
||||
self?.model = updatedModel
|
||||
self?.showErrorSwitch.isOn = updatedModel.hasError
|
||||
print("CheckboxViewController hasError: \(updatedModel.hasError)")
|
||||
print("CheckboxViewController selected: \(updatedModel.selected)")
|
||||
}.store(in: &subscribers)
|
||||
}
|
||||
|
||||
|
||||
@ -12,6 +12,10 @@ import VDSColorTokens
|
||||
import Combine
|
||||
|
||||
class RadioButtonViewController: UIViewController, StoryboardInitable {
|
||||
deinit {
|
||||
print("\(Self.self) deinit")
|
||||
}
|
||||
|
||||
enum PickerType {
|
||||
case surface
|
||||
}
|
||||
@ -80,24 +84,24 @@ class RadioButtonViewController: UIViewController, StoryboardInitable {
|
||||
//create the subject
|
||||
let modelSubject = CurrentValueSubject<DefaultRadioButtonGroupModel, Never>(model)
|
||||
|
||||
//assign - this will auto overwrite any changes
|
||||
modelSubject.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).assign(to: \.model, on: self).store(in: &subscribers)
|
||||
|
||||
//bind
|
||||
radioButtonGroup.createBinding(with: modelSubject, storeIn: &subscribers)
|
||||
|
||||
//update the model
|
||||
//print out on subject changes
|
||||
modelSubject.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] model in
|
||||
modelSubject
|
||||
.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main)
|
||||
.sink { [weak self] updatedModel in
|
||||
self?.model = updatedModel
|
||||
self?.showErrorSwitch.isOn = updatedModel.hasError
|
||||
print("RadioButtonViewController hasError: \(updatedModel.hasError)")
|
||||
|
||||
self?.showErrorSwitch.isOn = model.hasError
|
||||
print("RadioButtonViewController hasError: \(model.hasError)")
|
||||
|
||||
if let selectedModel = model.selectedModel {
|
||||
if let selectedModel = updatedModel.selectedModel {
|
||||
print("RadioButtonViewController selectedModel Id: \(selectedModel.id)")
|
||||
}
|
||||
}.store(in: &subscribers)
|
||||
}
|
||||
|
||||
.store(in: &subscribers)
|
||||
}
|
||||
|
||||
var radioButton: RadioButton? {
|
||||
radioButtonGroup.selectorViews.first
|
||||
|
||||
@ -34,9 +34,6 @@ extension Bindable {
|
||||
}
|
||||
|
||||
class TextFieldBindingCell: UIView, Bindable {
|
||||
deinit {
|
||||
print("\(Self.self) deinit")
|
||||
}
|
||||
|
||||
//bindable
|
||||
var model: User
|
||||
@ -100,6 +97,9 @@ class TextFieldBindingCell: UIView, Bindable {
|
||||
}
|
||||
|
||||
@objcMembers class TestViewController: UIViewController, Initable {
|
||||
deinit {
|
||||
print("\(Self.self) deinit")
|
||||
}
|
||||
|
||||
var user = User(firstName: "Joe", lastName: "User")
|
||||
private var subscriptions = Set<AnyCancellable>()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user