Xcode : 헤더 복사 : 공개 vs. 비공개 vs. 프로젝트?
Cocoa Touch Static Library를 만들고 있습니다. 헤더 파일을 공개, 비공개 또는 프로젝트로 복사할지 여부를 어떻게 결정해야합니까?
공개 : 인터페이스가 완성되었으며 제품 클라이언트가 사용하도록되어 있습니다. 공개 헤더는 제한없이 읽을 수있는 소스 코드로 제품에 포함됩니다.
비공개 : 인터페이스는 고객을위한 것이 아니거나 개발 초기 단계에 있습니다. 제품에 개인 헤더가 포함되어 있지만 "개인"으로 표시되어 있습니다. 따라서 심볼은 모든 클라이언트에게 표시되지만 클라이언트는 심볼을 사용해서는 안된다는 것을 이해해야합니다.
프로젝트 : 인터페이스는 현재 프로젝트의 구현 파일에서만 사용됩니다. 프로젝트 헤더는 개체 코드를 제외하고 대상에 포함되지 않습니다. 기호는 클라이언트에게 전혀 표시되지 않고 귀하에게만 표시됩니다.
출처 : Xcode 개발자 라이브러리> 도구 및 언어> IDE> 프로젝트 편집기 도움말> 헤더 파일의 가시성 설정
Randy의 대답은 훌륭하며 모든 관련 배경을 제공합니다. 귀하의 라이브러리 사용 방식에 따라 도움이 될 몇 가지 정보를 추가하고 싶습니다.
프로젝트 : 프로젝트를 배포하고 사용자가 프로젝트를 자체 하위 프로젝트로 포함 할 것으로 예상하는 경우 헤더가 '프로젝트'로 표시되어 있는지 확인해야합니다. 그렇게하지 않으면 다음과 같은 문제가 발생합니다. Xcode 4 Archive Version Unspecified
이는 하위 프로젝트의 하위 프로젝트를 포함하여 모든 하위 프로젝트에 반복적으로 적용됩니다.
PUBLIC : 라이브러리 사용자가 객체에 대해서만 링크 할 것으로 예상하는 경우 (원래 프로젝트가 아님) 헤더가 '공개'로 표시되어 있는지 확인하십시오 (참조해야하는 헤더에 대해서만).
Public
-동일한 모듈 내의 코드 또는 코드가 선언 된 모듈을 가져 오는 다른 모듈에 대한 액세스를 허용합니다.
Internal
-동일한 모듈의 코드에 대한 액세스를 허용하지만 다른 모듈에는 액세스 할 수 없습니다. 이것은 Swift의 기본 액세스 수준입니다.
Private
-코드가 선언 된 소스 파일에 대한 액세스를 제한합니다. 소스 코드 파일에 단일 클래스, 구조, 열거 형 등이 정의되어있는 것이 일반적이지만 파일 당 여러 개를 선언 할 수 있습니다.
이러한 제목은 약간 오해의 소지가 있습니다. 모든 헤더는 실제로 클라이언트에 표시되고 파인더에서 탐색 할 수 있지만, 우산 헤더로 가져 오려면 헤더를 명시 적으로 공개해야합니다. [대상 회원 정보]
참고 URL : https://stackoverflow.com/questions/7439192/xcode-copy-headers-public-vs-private-vs-project
'Programing' 카테고리의 다른 글
인터프리터 / 컴파일러는 어떻게 작동합니까? (0) | 2020.11.08 |
---|---|
언제 stdClass를 사용해야하고 언제 PHP oo 코드에서 배열을 사용해야합니까? (0) | 2020.11.08 |
플렉스 아이템이 텍스트로 인해 넘치지 않게하는 방법은 무엇입니까? (0) | 2020.11.08 |
이미지를 BufferedImage로 변환하는 Java (0) | 2020.11.08 |
텍스트를 왼쪽으로 90도 회전하는 방법 및 셀 크기는 html의 텍스트에 따라 조정됩니다. (0) | 2020.11.08 |