SwiftUIについて基本的なことを勉強しているんですが、状態管理でよく見る一番最初のサンプル
struct PlayerView: View { var episode: Episode @State private var isPlaying: Bool = false var body: some View { VStack { Text(episode.title) Text(episode.showTitle) PlayButton(isPlaying: $isPlaying) } } }
isPlayingがstate。'$'を前につけて
$playing
として子Viewに渡す、これがSwiftUIの状態管理のやり方、ということらしいんですが。
そして$をつけるとBinding型になる、ということらしいんですが。
「$をつけたらBinding型になる」というのはSwiftUIの決まりなのでしょうか?
なので「SwiftUIではこうなんだよ」ということで覚えればよいのでしょうか?
あるいは、他の言語的には「$を前につけて参照を表す」みたいなことが頭に浮かぶのですが、
SwiftUIが出る前からSwift言語の文法として「$を前置」は存在していてそれがSwiftUIでも使われているのでしょうか?
その場合Swift言語のドキュメントで説明されている箇所を見たいのですが、(あるのであれば)どこにあるでしょうか?
あと、「$をつけたらBinding型になる」ということは「$をつける」というのは型変換している
ことになるのでしょうか?
ちょっとドキュメント眺めただけなのでこちらで。
https://developer.apple.com/documentation/swiftui/binding
https://developer.apple.com/documentation/swiftui/state
この辺見ると型変換というニュアンスではなさそうですが、「SwiftUIの決まり」ではあるようです。
(projectedValueというのはどう訳されるのでしょうかね?)
また、SwiftにはState propertyが無いので$は存在しない(必要ない)んじゃないでしょうか?
回答を頂きましてありがとうございます。
とりあえず一番最初ということもありますし、深堀りしようとすると
かなり奥が深そうなので、現時点では決まりとして認識しておいて、
まずは状態管理の全体像をさらっと見てから考えようと思います。
そうですね。projectedどういう意味だろう、という感じですが。
projectに「映し出す、他人に伝える」みたいな意味があるようなので、state(状態)を別のviewに伝える、みたいなことですかね。よくわかりませんが笑
回答1件
あなたの回答
tips
プレビュー