Swiftのクラスやプロパティ、メソッドにはアクセス権を設定でき、例えば別のファイルからは値の参照や更新をできないようにする、といった制限を設けることができる。
Swiftのアクセス権は制限の度合いによって5つに分かれており、今回はそれぞれの解説をおこなっていく。
コンテンツ
internal
internalは別ファイルからでも自由に利用できる設定で、アクセス権の指定を省略すると自動的にinternalとして設定される。
fileprivate
fileprivateは同一ファイルからのみ利用できる設定で、外部ファイルから参照しようとするとエラーとなる。
private
privateは同一クラスなど宣言内からのみ利用できる設定で、同じファイル内でもブロックの外から参照しようとするとエラーとなる。
アクセス権一覧
その他、openやpublic修飾子が用意されており、修飾子をアクセスレベルの厳しい順に並べると次のとおりとなる。
private | 同一宣言内からのみ |
fileprivate | 同一ファイルからのみ |
internal(初期値) | 同一モジュールからのみ ※省略可能 |
public | モジュール外からもアクセス可能 ※継承とoverride不可 |
open | 自由にアクセス可能 |