ios - SwiftUI |警告 : Bound preference _ tried to update multiple times per frame. 可能的原因?

标签 ios swiftui

自从我使用首选项 (PreferenceKey ,..) 以来,我在控制台中收到以下消息:Bound preference _ tried to update multiple times per frame.经过无数次的研究,我还没有找到任何办法让它静音。所以……既然这个警告还没有具体的问题,你认为可能的原因是什么?
如果没有,可以忽略此警告还是我必须修复它?
太感谢了!
(我试图找到一个例子,但不知何故我没有得到任何简单的警告......)

最佳答案

SwiftUI 更改处理程序,例如 onPreferenceChange在任意线程上调用。因此,如果这些更改影响您的 View ,您应该重新调度以确保您在主线程上进行这些更新:

.onPreferenceChange(MyPreferenceKey.self) { newValue in
    DispatchQueue.main.async {
        widget.value = newValue
    }
}

关于ios - SwiftUI |警告 : Bound preference _ tried to update multiple times per frame. 可能的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64941607/

相关文章:

ios - 基于 3 个 NSPredicates 动态过滤数组

ios - 为什么按钮图像被压缩?

ios - 使用SwiftUI创建实际表

modal-dialog - swiftUI PresentaionLink 第二次不起作用

ios - Swift - 变量不保留值(value)

objective-c - Objective-C快速枚举和异步服务器操作。模型帮助?

ios - 执行 segue 时哪个对象是发送者?

ios - 关闭模态视图时未调用 onDisappear

ios - Swift UI : Disable a button if a text field is empty

macos - 更改插入符号的颜色 SwiftUI TextField MacOS