class CalculatorViewModel: ObservableObject {
private var cancellables: [AnyCancellable] = []
let didTapSubject = PassthroughSubject<CalculatorButton, Never>()
private var lastOperator: CalculatorButton?
private var lastNumber: NSNumber = 0
private var currentNumber: NSNumber = 0
@Published private(set) var labelString: String = "0"
init() {
setupObservable()
}
private func setupObservable() {
let subscription = didTapSubject
.print("CalculatorButton")
.sink { calculatorButton in
switch calculatorButton {
case .plus, .subtract, .multiply, .divide, .equals:
self.inputOperator(calculatorButton)
break
case .clear:
self.inputClear()
break
case .empty:
break
case .dot:
self.inputDot()
break
case let .number(value):
self.inputNumber(value)
break
}
}
cancellables = [subscription]
}
}
-
Notifications
You must be signed in to change notification settings - Fork 0
CombineSwiftUICalculator
License
tigi44/CombineSwiftUICalculator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
CombineSwiftUICalculator
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published