アクセス制限(Access Level)
8872 ワード
Access Levels
privateprivateInternalpublicOpenなどの類✓✓✓✓などのモジュール、プロジェクト✓✓モジュール外✓✓モジュール&修正可能✓
ここは모듈
です
コードの上部にインポートするライブラリを宣言すると、
UImit、MapKit、UserNotification等프레임워크
privateは専用APIです.
publicは公開APIです
ViewController.swift
デフォルト
青いアイコン
複数のモジュール
AppModuleとPodModuleはどちらでもご利用いただけます
Podについては、他の開発者も追加して使用する必要があるため、公開されていることが確認できます.
サブクラスおよび書き換え不可
サブクラスと上書きを許可する
実習
global & local varible + access level
ここで、グローバル変数は
aPrivateProperty, aFilePrivateProperty, anInternalProperty
main.swift
import Foundation
let aClass = AClass()
aClass.methodA()
aClass.methodB()
print(aClass.anInternalProperty) // Possible
AFile.swift
import Foundation
class AClass {
//Global variables, also called class properties.
//같은 클래스
private var aPrivateProperty = "private property"
//같은 파일
fileprivate var aFilePrivateProperty = "fileprivate property"
var anInternalProperty = "internal property"
func methodA () {
var aLocalVariable = "local variable"
//Step 1. Try to print aLocalVariable Here - Possible
print("\(aLocalVariable) printed from methodA in AClass")
//Step 3. Try to print aPrivateProperty Here - Possible
print("\(aPrivateProperty) printed from methodA in AClass")
//Step 6. Try to print aFilePrivateProperty Here - Possible
print("\(aFilePrivateProperty) printed from methodA in AClass")
//Step 9. Try to print anInternalProperty Here - Possible
print("\(anInternalProperty) printed from methodA in AClass")
}
func methodB () {
//Step 2. Try to print aLocalVariable Here - Impossible
//print("\(aLocalVariable) printed from methodB in AClass")
//Step 4. Try to print aPrivateProperty Here - Possible
print("\(aPrivateProperty) printed from methodB in AClass")
print("\(aFilePrivateProperty) printed from methodB in AClass") // Possible
print("\(anInternalProperty) printed from methodB in AClass") // Possible
}
}
class AnotherClassInTheSameFile {
init() {
//Step 5. Try to print aPrivateProperty Here - Impossible
//print(aClass.aPrivateProperty)
//Step 7. Try to print aFilePrivateProperty Here - Possible
print(aClass.aFilePrivateProperty)
}
}
AnotherFile.swiftimport Foundation
class AnotherClassInAnotherFile {
init() {
//Step 8. Try to print aFilePrivateProperty Here - Impossible
//print(aClass.aFilePrivateProperty)
//Step 10. Try to print anInternalProperty Here - Possible
print(aClass.anInternalProperty)
}
}
Reference
この問題について(アクセス制限(Access Level)), 我々は、より多くの情報をここで見つけました https://velog.io/@msi753/접근-제한자-access-levelテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol