2011-09-16 11 views

Respuesta

87

Público: La interfaz está finalizada y destinada a ser utilizada por los clientes de su producto. Un encabezado público se incluye en el producto como código fuente legible sin restricción.

Privado: La interfaz no está pensada para sus clientes o está en sus primeras etapas de desarrollo. Se incluye un encabezado privado en el producto, pero está marcado como "privado". Por lo tanto, los símbolos son visibles para todos los clientes, pero los clientes deben comprender que no deben usarlos.

Proyecto: La interfaz solo debe utilizarse con los archivos de implementación en el proyecto actual. Un encabezado de proyecto no está incluido en el destino, excepto en el código objeto. Los símbolos no son visibles para los clientes, solo para usted.

Fuente: Xcode Developer Library> Herramientas & Idiomas> IDEs> Editor de proyectos Ayuda> Configuración de la visibilidad de un archivo de cabecera

+0

Randy - Debería unir la respuesta de Power a la suya para que sea una mejor respuesta única, ¿eh? –

+0

Esto es incorrecto. Apple puede haber documentado eso, pero no lo implementaron. Los encabezados "públicos" LE PREVENIRÁN la distribución de su aplicación (error en Xcode) a menos que desacople sus proyectos (no incruste archivos de proyecto) – Adam

+2

¿Alguien sabe DONDE ESTÁN las opciones para los archivos de cabecera en XCode 5? – mindbomb

22

respuesta de Randy es bueno y le da todos los antecedentes pertinentes. Quería agregar algo de información para ayudarte en función de cómo esperas que se use tu biblioteca.

PROYECTO: Si está distribuyendo su proyecto y espera que los usuarios lo incluyan como un subproyecto, debe asegurarse de que los encabezados estén marcados como 'proyecto'. De lo contrario, surgirán problemas como este: Xcode 4 Archive Version Unspecified

Tenga en cuenta que esto se aplica a todos los subproyectos ... incluidos los subproyectos de subproyectos recursivamente.

PÚBLICA: Si espera que los usuarios de su biblioteca a único vínculo en contra de su objeto (y no tiene su proyecto original), asegúrese de que sus cabeceras están marcados como 'público' (sólo para los encabezados que van a necesitar para referirse a).

+1

Y el punto más importante aquí es recordar: Apple actualmente hace que sea imposible simplemente "distribuir una biblioteca" y dejar que los usuarios decidan cómo usarla, debido al error al que se hace referencia arriba (error en xcode: si una biblioteca tiene encabezados públicos) , y está incrustado, el archivador de Xcode se rompe sin solución alternativa) – Adam

+3

@ Adam, si está hablando de un error en Xcode, incluya el número de versión. Las respuestas de SO se quedan por mucho tiempo, y un error ahora no va a ser un error después de $ SOME_RELEASE. –

+0

@JamesMoore SO está diseñado para hacer frente a las respuestas que cambian con el tiempo. No veo ningún problema aquí. Además de eso ... cuando Apple comienza a emitir notas de lanzamiento para Xcode (creo que la mayoría de los cambios de Xcode se eliminan de las notas de la versión antes de que Apple los publique), y comienza a admitir los errores conocidos, tendremos tiempo de hacer estas actualizaciones manualmente. Hasta entonces, es demasiado esfuerzo editar constantemente, volver a editar y volver a verificar las muchas publicaciones de SO que se relacionan con los errores principales en Xcode. – Adam

Cuestiones relacionadas