是否有可能限制didSet,使其在一个时间间隔内只触发一次,如每秒一次,而不是一秒多次?就像是某种揭开面纱的方法?

@Published var someProperty: String = "" {didSet {
    Task {
        await someFunction(someParamater: someProperty)
    }
}}

推荐答案

每个@Published家wine 店的引擎盖下都有一个联合出版商.您可以订阅此出版商,并按如下方式取消订阅:

myModel.$someProperty
    .debounce(...)
    .sink { value in
        // Do what you wanted to do in didSet
    }
    .store(in: &cancellables)

Swift相关问答推荐

为什么在Swift属性Wrapper中需要类型注释?

Swift UI在视图中排序不同的 struct

MyApp类型不符合协议App''''

减go 用SWIFT struct 填充的NSCountedSet

应该在ViewModel还是ViewController中使用"Task {}"?

仅当 boolean 为真时才实现方法(application:didReceiveRemoteNotification)

使用 RxSwift 围绕 async/await 方法创建 Observable

异步等待不会在项目中触发,但在 Xcode playground 中工作正常

Vapor - 流利的,将对象保存到 PostgreSQL

通用枚举菜单 SwiftUI

找不到接受提供的参数的/的重载

获取设备图像比例(例如@1x、@2x 和@3x)

根据禁用与否更改 SwiftUI 中按钮的 colored颜色

如何在 Swift 中将对象归零

Swift 中惰性 var 的优势是什么

更改日期 Select 器的文本 colored颜色

Swift中方法的弃用和其他属性,如何?

转换为 swift 3 后,视图控制器中出现奇怪的通用函数

swift中的匿名类

我可以让#selector 引用 Swift 中的闭包吗?