我的singleton类中有一个struct,我正在尝试在另一个类中设置值。我试着像设置singleton类中的任何其他变量一样设置它,但是我得到一个错误“Static member'bigStruct',cannot be used on instance of type”SharingManager“
我试过了-

let sm = SharingManager.sharedInstance

sm.bigStruct //Autocomplete doesn't work and i get an error

然后,当我在singleton类中添加第15行时,我无法设置它,因为我得到一个错误“cannotassigntoproperty:function调用不可变值”(从我在this mens下面的标签中可以看出,它复制了结构,以便可以查看但不能设置)
sm.bigStruct.smallStruct.init().name = "my name"

单重类-
class SharingManager {
  struct bigStruct {
    struct smallStruct {
      var name = String()
    }
  }
  static let sharedInstance = SharingManager()
  var big = bigStruct.self
}

我的singleton类可以很好地处理普通变量,但是我找不到如何在singleton类中设置结构。

最佳答案

这将起作用:

var big = SharingManager.bigStruct()
var small = SharingManager.bigStruct.smallStruct()
small.name = "I am a smallStruct"

由于bigStruct/smallStruct不是实例属性或函数,因此以下项无法工作:
共享管理器.sharedInstance.bigStruct
SharingManager.sharedInstance.bigStruct.smallStruct.init().name=“我的名字”

09-30 00:18