【发布时间】:2021-09-21 01:50:07
【问题描述】:
我有一个 enum 案例,它是 ObservableObject 类中的 @Published var。我要做的是观察下面定义的term var 的变化并更新annualRate 发布者。
下面是@Published var
@Published var term: MortgageTerm = .thirtyYear
MortgageTerm 枚举定义如下:
public enum MortgageType: Int, CaseIterable {
case tenYear = 10
case fifteenYear = 15
case twentyYear = 20
case thirtyYear = 30
}
我正在尝试定义这个annualRate,以便它观察到上面term var 的变化:
public lazy var annualRate: AnyPublisher<Double, Never> = {
var output: Double
$term
.map { switchCase -> Double in
switch switchCase {
case .tenYear:
output = self.rates.tenYearFix
case .fifteenYear:
output = self.rates.fifteenYearFix
case .twentyYear:
output = self.rates.twentyYearFix
case .thirtyYear:
output = self.rates.thirtyYearFix
}
return output * 0.01
}
// FIXME: Result of call to `eraseToAnyPublisher()` is unused
.eraseToAnyPublisher()
}()
我在.eraseToAnyPublisher() 的线路上收到此警告。我在搞砸什么,我该如何解决?
这是rates 的来源:
private lazy var rates: AverageRate = {
let rateMock = AverageRate(thirtyYearFha: 2.873,
thirtyYearVa: 2.858,
tenYearFix: 2.068,
fifteenYearFix: 2.358,
thirtyYearFix: 3.054,
fiveOneArm: 2.898,
sevenOneArm: 2.972,
twentyYearFix: 2.756)
return rateMock
}()
【问题讨论】:
标签: swift enums combine publisher