Swift에서 가져 오기 가능한 모듈을 어떻게 생성합니까?
저는 Swift에 대한 Apple의 문서를 읽었으며 모듈을 만드는 방법이나 클래스 또는 스터 처 멤버를 비공개 또는 공개로 정의하는 방법에 대해 아무것도 찾을 수 없습니다.
구문에 import 문에 대한 참조가 있지만 그것이 수행하는 작업이나 사용 방법에 대한 정보를 찾을 수 없습니다.
이걸 어디서 찾을 수 있는지 아는 사람 있나요?
최신 정보
프레임 워크를 사용하여 신속한 프로젝트를 모듈화 할 수 있습니다.
각 모듈에 대해 별도의 프레임 워크 프로젝트를 생성하여 모듈화하고 Xcode 작업 공간을 통해 연결합니다. 구성 요소를 서로 다른 프로젝트로 분리 할 때 더 자연스러워 보이고 모듈간에 단방향 통신 만 있는지 확인합니다. 개발자는 다른 모듈에 대해 많이 생각하지 않고 격리 작업 / 테스트를 수행 할 수 있습니다.
기본적으로 프레임 워크 내에서 생성 된 클래스 / 구조체 / 등은 internal액세스 제어 유형을 가지므로 모듈 내에서만 볼 수 있습니다. 모듈 외부에서 볼 수 있도록 만들 수 있습니다 public.
여기 에 액세스 제어 수준에 대한 자세한 정보
최신 Xcode 6 베타 업데이트 (베타 4)는 신속한 액세스 제어를 제공합니다.
Swift로 액세스 제어 가능
Swift 액세스 제어에는 세 가지 액세스 수준이 있습니다.
- 개인 엔티티는 정의 된 소스 파일 내에서만 액세스 할 수 있습니다.
- 내부 엔티티는 정의 된 대상 내 어디에서나 액세스 할 수 있습니다.!
- 공용 엔터티는 대상 내의 어디에서나 현재 대상의 모듈을 가져 오는 다른 컨텍스트에서 액세스 할 수 있습니다.
Swift에서 "Modules"는 프레임 워크를 의미합니다. Xcode에는 이제 iOS 및 OS X 용 프레임 워크 프로젝트를 만들기위한 템플릿이 있습니다.
현재는 메서드 나 속성을 public / protected로 선언 할 수있는 방법이 없습니다. 이 기능이 추가되었는지 확인하려면 Apple의 버그 리포터 에서 기능 요청을 할 수 있습니다 . 또한 Apple은 Xcode의 각 릴리스에 따라 언어가 변경 될 수 있으므로 공개 릴리스 전에 멤버 액세스 수준을 추가 할 수 있다고 언급했습니다.
또한 혼자서 모듈을 만드는 방법도 있지만 좀 더 어려운 방법입니다.
살펴보면 xcrun swift -help몇 가지 옵션을 볼 수 있으며 -emit-module, -emit-library및 -emit-object유용 할 수 있지만 아마도 공식적인 방법을 선호하고 프레임 워크를 통해 모듈을 배포해야합니다.
그래도 스스로 모듈을 만들고 싶다면 이 가이드 를 몇 가지 설명과 함께 읽을 수 있습니다.
애플은 사적인 방법이 아직 존재하지 않지만 구현 중이라고 언급했습니다. 이것은 새로운 언어이며 여전히 구축되고 있음을 기억하십시오.
스위프트 4.0
Apple 책 " The Swift Programming Language (Swift 4 Edition) "의 "접근 제어"장에서 설명
Swift는 코드 내의 엔터티에 대해 5 가지 액세스 수준을 제공합니다. 이러한 액세스 수준은 엔티티가 정의 된 소스 파일과 관련되며 소스 파일이 속한 모듈과 관련됩니다.
open액세스 및public액세스를 사용하면 정의 모듈의 소스 파일과 정의 모듈을 가져 오는 다른 모듈의 소스 파일에서 엔티티를 사용할 수 있습니다. 일반적으로 프레임 워크에 대한 공용 인터페이스를 지정할 때 개방 또는 공용 액세스를 사용합니다. 정의 모듈을 가져 오는 다른 모듈과 열기의 차이점입니다. 일반적으로 프레임 워크에 대한 공용 인터페이스를 지정할 때 개방 또는 공용 액세스를 사용합니다.internal액세스를 사용하면 정의 모듈의 모든 소스 파일 내에서 엔티티를 사용할 수 있지만 해당 모듈 외부의 소스 파일에서는 사용할 수 없습니다. 일반적으로 앱 또는 프레임 워크의 내부 구조를 정의 할 때 내부 액세스를 사용합니다.fileprivate액세스는 엔티티의 사용을 자체 정의 소스 파일로 제한합니다. 파일 전용 액세스를 사용하여 특정 기능에 대한 구현 세부 정보를 전체 파일 내에서 사용하는 경우이를 숨 깁니다.privateaccess는 엔터티의 사용을 둘러싸는 선언과 동일한 파일에있는 해당 선언의 확장으로 제한합니다. 이러한 세부 사항이 단일 선언 내에서만 사용되는 경우 특정 기능의 구현 세부 사항을 숨기려면 비공개 액세스를 사용하십시오. "
참고 URL : https://stackoverflow.com/questions/24027125/how-do-i-create-an-importable-module-in-swift
'Nice programing' 카테고리의 다른 글
| Pusher 대 Pubnub 대 오픈 소스 Socket.io / SignalR.net / Faye / jWebSocket (0) | 2020.10.30 |
|---|---|
| 서브 클래 싱 할 수없는 클래스는 무엇입니까? (0) | 2020.10.30 |
| AttributeSet은 무엇이며 어떻게 사용할 수 있습니까? (0) | 2020.10.30 |
| Wii 프로그래밍을위한 튜토리얼 (0) | 2020.10.30 |
| 애플리케이션에서 사용자 정의 필드를 지원하는 디자인 패턴은 무엇입니까? (0) | 2020.10.30 |