2
3

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 3 years have passed since last update.

変数の前につける魔法の言葉

2
Posted at

はじめに

Swiftを勉強していると変数名の前にstaticやprivate、State など呪文のような言葉がついており、なんだこれ!?と思った方も多いのではないでしょうか。
ですので、それぞれどういった意味を持っているのかについてまとめました!!

static

static var hoge

そもそもこのstaticとは一体何者なのでしょうか。
それは、値を保持し続ける変数を宣言するためのものである。一般的には「静的変数」と呼ばれている。

staticで宣言した変数はインスタンスを生成しなくてもアクセスすることができる。
一方で、値の再度初期化ができないため、インスタンス単位でアクセスすることはできない。

アクセス修飾子

アクセス修飾子とは

クラスや変数等がどこからアクセス可能であるかを決定するものである。

種類

// デフォルトの修飾子である。省略可能。
internal var hoge

// クラス内でのみアクセス可能。
private var hoge

// 同じファイル内でのみアクセス可能。
fileprivate var hoge

// どこからでもアクセス可能。継承やオーバーライドはできない。
public var hoge

// どこからでもアクセス可能。継承やオーバーライドもできる。
open var hoge

open -> public -> internal -> fileprivate -> private
openになるにつれ制限が緩く、privateになるにつれ制限がきつくなる。

データバインディング

データバインディングとは

データとViewを紐付けて、データを更新すると、紐付けされたViewが再描画するという仕組みである。

種類

@state

Viewとプロパティを紐付けしている仕組みである。
SwiftUIのViewはstructであるため、プロパティの更新ができないが、@stateを用いることによりプロパティの変更が可能となる。そして、プロパティの値が変更されるとViewがSwiftUIによって自動的に再描画する。

@ObservedObject

データクラス(クラスのインスタンス)とViewを紐付けするための仕組みである。
クラスとして定義をし、@published属性が付与されたプロパティを監視している。

@EnvironmentObject

@ObservedObjectと同様の仕組みである。
違いは、アプリケーション全体でアクセス可能であること。アプリケーション全体で共有したいデータを扱うときに使用する。

最後に

変数の前につけるあれこれをざっと紹介しました!
この記事が全てではなく、大まかな意味を理解できれば良いかなと思い,書きました。
もっと深く理解したい方は参考記事をご覧ください。
最後まで読んでいただきありがとうございました。

参考

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?