让我首先借口可能缺少一些基本内容(以及正确的表达方式)
我有一个结构,其中存储了一个棋盘游戏的多个值。它看起来像这样,并包含大约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]
?
答案 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
。它只是传递实际的值,而不是引用。但这是另一个主题。