通过变量快速访问结构

时间:2018-11-15 09:24:08

标签: swift struct

让我首先借口可能缺少一些基本内容(以及正确的表达方式)

我有一个结构,其中存储了一个棋盘游戏的多个值。它看起来像这样,并包含大约20个值。

struct Werte {

static var geld: [Int] = [] {didSet {NotificationCenter.default.post(name: .ResourcenAnzeigen, object: nil, userInfo: ["which" : 0])}}
static var erz: [Int] = [] {didSet {NotificationCenter.default.post(name: .ResourcenAnzeigen, object: nil, userInfo: ["which" : 1])}}
static var temperatur = Int() {didSet {NotificationCenter.default.post(name: .TemperaturAnzeigen, object: nil)}}

}

有几个这样的类:

class KarteBlauVerbraucheErhalte {
let use: //what should I declare
let useHowMuch: Int

init(use: /*what should I declare*/ , useHowMuch: Int) {
    self.use = use
    self.useHowMuch = useHowMuch
}

override func Aktion() {
  use += useHowMuch
}

如果我用use声明Int并使用init(use: Geld[0] , useHowMuch: 99),则代码有效-但只有类变量use增加了99。 Geld[0]不变。 如何更改Geld[0]

1 个答案:

答案 0 :(得分:0)

这是一种方法:

var use: Int { 
    get { 
        return Werte.geld[0]
    }
    set { 
        // You have access to the newValue by property name 'newValue'.
        // Use it. E.g.:
        Werte.geld[0] += newValue
    }
}

在构造函数中忽略它,因为这没有意义,我也不认为它可以编译。

代码为什么不起作用的背景:您指的是geld[0],它只是一个Int。它只是传递实际的,而不是引用。但这是另一个主题。