0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SwiftUIでのViewの扱いについて

Last updated at Posted at 2020-04-17

SwiftUIでのViewはどういうポジション??

環境

macOS Catalina 10.15.5 Beta(19F53f)
Xcode 11.4.1

現状

自分はSwiftUIが出る前のSwift4を以前に学習していました。
それで最近になって再びアプリを作らないといけない状況になり公式のチュートリアルを参考にしてSwiftUIの勉強また、詰め込めこみきれていないSwiftについて勉強しています。

チュートリアルを進め、現在はHanding User Inputに入りました。

@State? @EnvironmentObject?

@Stateとは? @EnvironmentObjectとは? という前に
Swiftをチュート半端にやっていた自分は@の意味がわかりませんでした。
なので調べ「プロパティ同士の関係付のための何か」と、なんとも曖昧な結論になりました。

そして改めて@State@EnvironmentObjectについて調べました。
@Stateは「UIの状態をプロパティに紐付けする」
@EnvironmentObjectは「複数のViewでインスタンスを共有する」ものなのだと理解しました。

質問

@EnvironmentObjectの説明で「複数のViewで...」という説明がありましたが、
プログラムはclass単位で作っているものだと思い込んでいた自分からすれば
@EnvironmentObjectの説明はなんとも引っかかります。

swiftUIにおいてアプリの構成はViewというものなのですか??
だとしたら確認なのですが
View一つと対応しているのはPreviewProviderを準拠しているstructとということでいいのですか?**
そこのところ質問したいです。

あと
@EnvironmentObjectを追加すると

struct LandmarkList_Previews: PreviewProvider {
    static var previews: some View {
        LandmarkList()
            .environmentObject(UserData())
    }
}

のように**.environmentObject()を追加しているのですがこれは何をやっているんですか?**
あと、あと**@の理解について、間違っていますか?**

すいません最後に質問をまとめます。

  1. swiftUIにおいてアプリの構成はViewというものなのですか??
  2. View一つと対応しているのはPreviewProviderを準拠しているstructとということでいいのですか?**
  3. .environmentObject()を追加しているのですがこれは何をやっているんですか?
  4. @の理解について、間違っていますか?
    どの質問もyes/noではなく解説をしていただきたいです。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?