Swiftのクラスやプロパティ、メソッドにはアクセス権を設定でき、例えば別のファイルからは値の参照や更新をできないようにする、といった制限を設けることができる。

Swiftのアクセス権は制限の度合いによって5つに分かれており、今回はそれぞれの解説をおこなっていく。

internal

internalは別ファイルからでも自由に利用できる設定で、アクセス権の指定を省略すると自動的にinternalとして設定される。

fileprivate

fileprivateは同一ファイルからのみ利用できる設定で、外部ファイルから参照しようとするとエラーとなる。

private

privateは同一クラスなど宣言内からのみ利用できる設定で、同じファイル内でもブロックの外から参照しようとするとエラーとなる。

アクセス権一覧

その他、openやpublic修飾子が用意されており、修飾子をアクセスレベルの厳しい順に並べると次のとおりとなる。

private同一宣言内からのみ
fileprivate同一ファイルからのみ
internal(初期値)同一モジュールからのみ
※省略可能
publicモジュール外からもアクセス可能
※継承とoverride不可
open自由にアクセス可能