提问人:Ben Long 提问时间:11/14/2023 更新时间:11/14/2023 访问量:57
在 Swift 中将单例类重新分配给子类
Re-assigning a singleton class to a subclass in Swift
问:
在 Swift 中,我有一个 Skin 类,它被定义为 ObservableObject 单例,其中包含:
class Skin: ObservableObject {
@ObservedObject var theCurrentWorld = WorldViewController.shared
static var shared = Skin()
@Published var skinName = "Default Skin”
…gobs of other properties
我使用从我的应用程序的所有位置访问它
@ObservedObject var currentSkin = Skin.shared
我还有皮肤的子类,这些子类覆盖了基本 Skin 类的一些属性和方法。当用户决定更改皮肤时,我希望能够将 currentSkin 重新分配为这些子类之一。
但是如果我说
currentSkin = LeopardSkin()
我得到:Cannot assign to property: 'self' is immutable
相反,如果我说:
currentSkin.shared = LeopardSkin()
我得到:
Static member 'shared' cannot be used on instance of type 'Skin'
那么,如果我只是说:
Skin.shared = LeopardSkin()
它编译了,但 currentSkin 仍然是原始的基础皮肤。我通过检查一些属性和跟踪一些方法知道这一点。
所以现在我没有想法了。任何帮助都会很棒!
答: 暂无答案
评论
ObservedObject
View
Combine
sink
ObservableObject
singleton pattern