如何在 SwiftUI 中订阅数组的大小?
Posted
技术标签:
【中文标题】如何在 SwiftUI 中订阅数组的大小?【英文标题】:How can I subscribe to the size of an array in SwiftUI? 【发布时间】:2021-07-11 15:39:25 【问题描述】:我想跟踪数组的大小,我认为这样会起作用:
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。有没有更清洁的方法?
【问题讨论】:
【参考方案1】:很难知道CarRepository
和CarRepository.ownedCars
是什么,但我猜它们是这样的:
class CarRepositoryType: ObservableObject
@Published var ownedCars = []
var CarRepository = CarRepositoryType()
在ownedCars
更新之前调用接收器。新值被传递到接收器;你应该在那里阅读它。
CarRepository.$ownedCars.sink owned in
self.ownedCarLength = owned.count
【讨论】:
感谢您的快速回复,成功了!以上是关于如何在 SwiftUI 中订阅数组的大小?的主要内容,如果未能解决你的问题,请参考以下文章