swift - 如何在类外设置结构值?

标签 swift xcode data-structures struct singleton

我的单例类中有一个结构,我正在尝试在不同的类中设置值。我尝试像在单例类中设置任何其他变量一样设置它,但出现错误 “静态成员‘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"

关于swift - 如何在类外设置结构值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47932334/

相关文章:

swift - Xamarin 中的 CGMutablePath

swift - 如何对 UITableViewCell 中的 TextView 中的数字进行排序?

ios - 如何在 swift3 中按下按钮时以编程方式执行 segue 或呈现 View

java - 使用java map /列表按相似结构分组

ios - 当我的 Rails 服务器返回 304 时,Alamofire 响应对象返回 200 状态代码

Swift:通过 NSNotificationCenter 从子 ViewController 返回数据

swift - 为什么执行 data.append(moredata) 时 swift 会崩溃?或数据 = 数据1 + 数据2

ios - 除非应用程序需要全屏,否则必须提供启动 Storyboard或 xib

c - 合并两个链表

c++ - 使用 typedef 作为变量名不会产生任何错误