首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已发布值的SwiftUI切换()函数停止使用SWIFT5.2触发didSet

已发布值的SwiftUI切换()函数停止使用SWIFT5.2触发didSet
EN

Stack Overflow用户
提问于 2020-03-28 22:39:52
回答 1查看 838关注 0票数 0

我刚刚将我的Xcode从11.3更新到11.4,用SwiftUI编写的项目开始有了不同的表现。我曾经为布尔值调用toggle()函数,它用来触发didSet属性观察者,但是它不再工作了。

假设我们有一个名为StateisSettingOn属性。我以前管这叫:

isSettingOn.toggle()

触发了财产的didSet观察者。如果我这么说的话:

isSettingOn = true

起作用了。

我的项目都是基于这种行为,现在这个变化基本上破坏了一切。有人知道我在这里做了什么错事吗?

编辑:

添加了演示代码:

代码语言:javascript
复制
struct ContentView: View {

    @State var isSettingOn: Bool = true {
        didSet {
            print("didSet isSettingOn")
        }
    }

    var body: some View {
        Button(action: {
            self.isSettingOn = true // will trigger didSet
            self.isSettingOn.toggle() // won't trigger didSet
        }) {
            Text("Toggle isSettingOn")
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-18 22:47:33

这是Xcode 11.4 and 11.4.1中的一个bug,在Xcode 11.5 (Beta)中是用Swift 5.2.4修复的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60907882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档