不符合协议BindableObject-Xcode 11 Beta 4

ShadowDES:

玩弄那里的例子。找到一个项目,该项目的类为bindableobject,并且没有出现任何错误。现在Xcode 11 beta 4已经发布,我得到了错误:

类型“ UserSettings”不符合协议“ BindableObject”

它有一个关于错误的修复按钮,当您单击该按钮时,它会添加

typealias PublisherType = <#type#>

希望您填写类型。

类型是什么?

class UserSettings: BindableObject {

    let didChange = PassthroughSubject<Void, Never>()

    var score: Int = 0 {
        didSet {
            didChange.send()
        }
    }
}
联系:

Beta 4 发行说明说:

BindableObject协议的要求现在是willChange而不是didChange,并且现在应该在对象更改之前而不是更改之后发送。此更改可以改进更改通知的合并。(51580731)

您需要将代码更改为:

class UserSettings: BindableObject {

    let willChange = PassthroughSubject<Void, Never>()

    var score: Int = 0 {
        willSet {
            willChange.send()
        }
    }
}

Beta 5中,他们再次更改了它。这次他们一起弃用了BindableObject!

BindableObject替换为Combine框架中的ObservableObject协议。(50800624)

您可以通过定义在对象更改之前发出的objectWillChange发布者来手动遵守ObservableObject。但是,默认情况下,ObservableObject自动合成objectWillChange并在任何@Published属性更改之前发出。

@ObjectBinding替换为@ObservedObject。

class UserSettings: ObservableObject {
    @Published var score: Int = 0
}

struct MyView: View {
    @ObservedObject var settings: UserSettings
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xcode 11 Beta 4 TabbedView 绑定问题

Xcode 11 Beta 4存档快速错误

Xcode 11 Beta 4-不推荐使用relativeWidth

类型'CFStringRef'不符合Xcode 6.1中的协议'Hashable'

如何在Xcode 10中打开Xcode 11 Beta 4项目?

Xcode 11 beta 4错误:命令CompileSwiftSources失败,退出代码为非零

找不到SwiftUI符号:_ $ s7SwiftUI9TextFieldVAA4ViewAAMc Xcode 11 beta 3

在SwiftUI Xcode 11 Beta 4中使用可绑定对象保存数据

为什么Xcode“不符合协议fix-it”增加了很多方法

类型'AppDelegate'不符合协议'CLLocationManagerDelegate'-Xcode 6中的Swift

了解为什么Xcode(swift)中的“类型不符合协议”

类型“ ContentView”不符合协议“视图”(Xcode-Swift UI)

Xcode 11 beta 3上UIAction的语法

Xcode 11 beta swift ui preview not showing

iOS 11 Beta 2 / Xcode Beta 3 AutoLayout问题

Xcode 7 Beta 5 Swift 2冗余符合协议错误

Xcode 11 beta 6背后的Xcode 11 beta 7下载链接?

在Xcode11 Beta 4中将String(format:,args)与SwiftUI一起使用时出错

尝试在带有Xcode11 beta4的iOS13上呈现RPSystemBroadcastPickerView时获取NSInvalidArgumentException

在Xcode11 beta 4中有效但在beta 5中停止工作的代码出现问题

在Xcode 6 Beta 4中释放Segue

Xcode 8 beta 4中的shouldAutorotate()函数

解决Xcode 11 beta 5中的SwiftUI Path崩溃

Xcode 11 Beta 5 - 模态仅触发一次

Xcode 11 Beta是否因为WatchKit而无法构建?

Xcode 11 Beta 5-加载插件失败

Xcode Beta 11:主机视图控制器在哪里?

Xcode 11 Beta中的字体样式已更改

DefaultPickerStyle在Xcode 11 beta 6 swiftUI中不起作用