swift - 如何延迟 swift 属性 didSet 以便每秒只触发一次

标签 swift

是否可以限制didSet,使其在一个时间间隔内仅触发一次,例如每秒一次,而不是每秒多次?喜欢某种去抖方法吗?

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

最佳答案

每个@Published 属性都有一个合并发布者。您可以订阅该发布者并像这样取消它:

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

关于swift - 如何延迟 swift 属性 didSet 以便每秒只触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75163760/

相关文章:

ios - 如何在 iOS 和 Swift 中的 Collection View Cell 中停止捕获 session

Swift:如何在不使用连接或高阶函数的情况下逐层打印树?

ios - 按住按钮时录制音频

ios - 将对讲机集成到 Swift iOS 应用程序中

ios - 在 Swift 中获取 UIBarButtonItem 的框架?

ios - 如何更改 MGLPolyline 的颜色?

ios - 如何使用 UITableViewCell 的 accessoryButton 作为 Popover 的 anchor

ios - 这是新版本 watchOS 或 iOS 的错误吗?

swift - 在 nil-check 之后发现 nil

ios - 我可以像视频一样裁剪 GIF 吗?