在 iOS 13.4 之前,我使用属性观察器更新 @Published Bool 值的 UserDefaults
@Published var mutedAudio: Bool = UserDefaults.standard.bool(forKey: "mutedAudio") {
didSet { UserDefaults.standard.set(self.mutedAudio, forKey: "mutedAudio") }
}
Run Code Online (Sandbox Code Playgroud)
在 iOS 13.4 的第一个测试版中,如果我在 SwiftUI 中使用 toggle() 方法,则不再调用 didSet(),并且我必须使用逻辑否定:
Button(action: {
// self.settings.mutedAudio.toggle() doesn't work in iOS 13.4
self.settings.mutedAudio = !self.settings.mutedAudio // workaround
}) {
Image(systemName: settings.mutedAudio ? "speaker.slash.fill" : "speaker.2.fill").resizable().frame(width: 24, height: 24)
}
Run Code Online (Sandbox Code Playgroud)
还有比等待下一个 iOS 13.4 测试版更好的解决方案吗?
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |