Programing

Xcode : 헤더 복사 : 공개 vs. 비공개 vs. 프로젝트?

crosscheck 2020. 11. 8. 09:19
반응형

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

반응형