如何在类外设置结构值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在类外设置结构值?相关的知识,希望对你有一定的参考价值。

我在我的单例类中有一个结构,我试图在不同的类中设置值。我尝试设置它就像我在单例类中设置任何其他变量但我得到一个错误“静态成员'bigStruct',不能在类型”SharingManager“的实例上使用”

我试过了 -

let sm = SharingManager.sharedInstance  

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

然后,当我在单例类中添加第15行时,我无法设置它,因为我得到错误“无法分配给属性:函数调用不可变值”(从我的承诺这个结果,它使得结构的副本所以它可以查看但未设置)

sm.bigStruct.smallStruct.init().name = "my name"  

单身人士班 -

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

我的单例类适用于普通变量,但我找不到如何在单例类中设置结构。

答案

这将有效:

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

以下内容无法正常工作,因为bigStruct / smallStruct不是实例属性或函数:

SharingManager.sharedInstance.bigStruct

SharingManager.sharedInstance.bigStruct.smallStruct.init()。name =“my name”

以上是关于如何在类外设置结构值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GUI 线程外设置 QWidget 光标

如何在应用程序窗口外设置光标位置? (C ++)

在图外设置图例的方法

如何在android的片段中设置应用程序上下文?

如何做到在echarts外设置一个时间段,使echarts只显示该时间段的数据

为啥在块外设置时,`scheduledTimer` 会正确触发,而不是在块内?