SwiftUI の static の意味と使い方を説明する。
結論
変数宣言時に static を付けると変数の値が固定値となる。
具体例
以下のAppを例に説明する。
- structで各職業の入れ物を作る。各職業ごとのキャラの画像は同じで良いので、変数 画像 に static を付けて画像を設定する。
- 各キャラのインスタンスを生成する。男ゆうしゃ1人と女まほうつかい3人のパーティ編成とした。
- 各キャラの画像とステータスを表示する。 キャラの画像は職業ごとに固定としているのでまほうつかいの3人は同じ画像を表示する。staticの変数を使うときはstruct名.変数名と記述する。
import SwiftUI
struct ゆうしゃ {
static let 画像 = Image("ゆうしゃの画像") // ?1
let なまえ: String
var レベル: Int
var HP: Int
var MP: Int
}
struct まほうつかい {
static let 画像 = Image("まほうつかいの画像") // ?1
let なまえ: String
var レベル: Int
var HP: Int
var MP: Int
}
struct ContentView: View {
var ヨシヒコ = ゆうしゃ(なまえ: "ヨシヒコ", レベル: 42, HP: 500, MP: 50) // ? 2
var りか = まほうつかい(なまえ: "りか", レベル: 37, HP: 200, MP: 350)
var ごまき = まほうつかい(なまえ: "ごまき", レベル: 36, HP: 400, MP: 250)
var みきてぃ = まほうつかい(なまえ: "みきてぃ", レベル: 37, HP: 350, MP: 300)
var body: some View {
HStack {
VStack {
ゆうしゃ.画像 // ? 3
Text("\(ヨシヒコ.なまえ)")
Text("HP : \(ヨシヒコ.HP)")
Text("MP : \(ヨシヒコ.MP)")
Text("レベル : \(ヨシヒコ.レベル)")
}
VStack {
まほうつかい.画像 // ? 3
Text("\(りか.なまえ)")
Text("HP : \(りか.HP)")
Text("MP : \(りか.MP)")
Text("レベル : \(りか.レベル)")
}
VStack {
まほうつかい.画像 // ? 3
Text("\(ごまき.なまえ)")
Text("HP : \(ごまき.HP)")
Text("MP : \(ごまき.MP)")
Text("レベル : \(ごまき.レベル)")
}
VStack {
まほうつかい.画像 // ? 3
Text("\(みきてぃ.なまえ)")
Text("HP : \(みきてぃ.HP)")
Text("MP : \(みきてぃ.MP)")
Text("レベル : \(みきてぃ.レベル)")
}
}
}
}
まとめ
SwiftUI の static の意味と使い方を説明した。
コメント