如何在SwiftUI中订阅数组的大小

  • 本文关键字:数组 SwiftUI swiftui combine
  • 更新时间 :
  • 英文 :


我想跟踪数组的大小,我认为这样的东西会起作用:

class CarListViewModel: ObservableObject {
private var cancellables = Set<AnyCancellable>()   
@Published var ownedCarLength = 0
init(){     
CarRepository.$ownedCars.sink { _ in
self.ownedCarLength = CarRepository.ownedCars.count
}
.store(in: &cancellables)
}

因为每次修改数组CarRepository.ownedCars时都会调用此函数,但是由于某种原因,从CarRepository.ownedCars.count返回的值计算为0。有更干净的方法吗?

很难知道CarRepositoryCarRepository.ownedCars是什么,但我猜它们是这样的:

class CarRepositoryType: ObservableObject {
@Published var ownedCars = []
}
var CarRepository = CarRepositoryType()

在更新ownedCars之前调用接收器。将新值传递给接收器;你应该在那里读。

CarRepository.$ownedCars.sink { owned in
self.ownedCarLength = owned.count
}

相关内容

  • 没有找到相关文章

最新更新