我的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=“我的名字”