6
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.

アクセス修飾子まとめ【Swift】

Posted at

はじめに

コードを書く際にあまり意識していなかったのと、理解が曖昧だったので備忘録として投稿します。

アクセス修飾子とは?

アクセス修飾子とは、クラスや関数等にアクセス制限を設けるために利用します。

internal

  • 同じモジュール内であればアクセスすることができる。

モジュールとは

モジュールとはimportして読み込んで利用するFrameworkを作成するための仕組み。

private

  • 一番制約の厳しいアクセス修飾子。
  • 同じファイル内からのアクセスのみ許可されている。
  • クラス単位ではなく、ファイル単位のアクセス制御であることに注意がいる。( Swift4からextensionprivateプロパティにアクセスできるようになった。)

fileprivate

  • 同じファイル内からのアクセスのみ許可されている。

public

  • 別のモジュールからでもアクセスできる。
  • 継承やオーバーライドが不可能

open

  • 別のモジュールからでもアクセスできる。
  • 継承やオーバーライドが可能

アクセス修飾子の使い分け

アクセスレベルを特に意識しない場合

  • 何もつけない or internal

アクセスレベルを意識する場合

  • public・・・別のモジュールからも使えるようにしたい
  • open・・・別のモジュールからも使えて、継承やオーバーライドさせたい。
  • private・・・実装を他からは隠したい。
  • fileprivate・・・実装を他からは隠したいが、特定のコード間では共有したい。

補足

fileprivateを使うよりprivateにして、共有したいコードを同じソースファイルにextensionを使ってまとめるほうがいい。

参考

6
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
6
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?