Xcode 플레이 그라운드는 Sources 폴더의 신속한 파일에 액세스 할 수 없습니다.
방금 Xcode 6.3으로 업그레이드하여 Playgrounds에 새로운 것을 제공했습니다. 새 플레이 그라운드를 만들고 프로젝트 탐색기를 열면 Sources 폴더가 표시되고 그 안에 "SupportCode.swift"파일이 있습니다. 해당 파일의 맨 위에
이 파일 (및이 플레이 그라운드의 소스 디렉토리에있는 다른 모든 Swift 소스 파일)은 .playground에서 자동으로 사용할 수있는 프레임 워크로 사전 설치됩니다.
거기에 기능을 넣는데 내 놀이터에서 사용할 수 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까? SupportCode.swift 파일을 수동으로 수행해야합니까? 어떻게?
소스 폴더의 클래스, 메소드 및 속성에 공용 액세스 속성 을 추가 하여 컴파일러에 의해 별도의 모듈로 취급하는 기본 플레이 그라운드 파일에서 액세스 할 수 있습니다.
플레이 그라운드는 테스트 실행에 좋습니다. 모든 코드를 Sources
디렉터리에 각 테스트에 대해 공개적으로 액세스 할 수있는 '테스트'클래스를 하나씩 존재합니다. 그런 다음 놀이터에서 공개적으로 액세스 할 수있는 테스트를 실행합니다.
playground
Test1.run()
Testx.run()
...
Sources/Test1.swift
public class Test1 {
public static func run() {
let my_class = MyClass()
let result = my_class.do_something()
print(result)
}
}
Sources/MyClass.swift
class MyClass {
func do_something() -> String {
return "lol"
}
}
Source 폴더에 .swift 파일을 만들 때 언급했듯이 플레이 그라운드 코드에서 자동으로 사용할 수 있습니다. 이 파일의 다른 부분에 대한 액세스를 제어하기 위해 다음과 같은 액세스 레벨을 수정하여 사용할 수 있습니다. public
, internal
& private
.
에 따르면 스위프트 프로그래밍 언어 액세스 제어
대부분의 경우 기본 액세스 수준 internal
은 모듈 내부에서 액세스 할 수 있습니다 외부에서는 액세스 할 수 없습니다.
즉, 액세스 할 수 없습니다.자가없는 클래스를 선언하면 소스 폴더의 다른 파일에서 액세스 할 수 있습니다 플레이 그라운드의 기본 파일에는 액세스 할 수 있습니다. 반면에 공용 한정 튼 사용하여 클래스를 선언하면 두 경우 모두 액세스 할 수 있습니다.
실제 사용을 위해 : Singleton 구현을 만들어 보겠습니다. 먼저 : 다음 코드를 사용하여 'Singy.swift'라는 소스 폴더에 새 파일을 만듭니다.
public class Singy {
public var name = ""
private static var instance: Singy?
private init() {}
public static func getSingy() -> Singy {
if Singy.instance == nil {
Singy.instance = Singy()
}
return Singy.instance!
}
}
둘째 : 놀이터에서
var s1 = Singy.getSingy()
var s2 = Singy.getSingy()
s1.name = "One"
print(s2.name)
모두 s1
와 s2
같은 인스턴스를 참조하지만,이 클래스 내에서만
'ProgramingTip' 카테고리의 다른 글
UIView autoresizingMask- 코드에 대한 인터페이스 빌더-프로그래밍 방식으로 스트럿 및 스프링 생성 -Swift 또는 Objective-C (0) | 2021.01.05 |
---|---|
ActionBar가없는 Android 활동 (0) | 2020.12.31 |
Rails- 시스템이 지정된 경로를 수 없습니다. (0) | 2020.12.31 |
Windows 서비스 exe 경로를 찾는 방법 (0) | 2020.12.31 |
Xcode가 프로세스 XXX에 대한 작업을 가져 오기 오지. (0) | 2020.12.31 |