Estoy construyendo una biblioteca estática Cocoa Touch. ¿Cómo debería decidir si copio un archivo de encabezado como público, privado o proyecto?Xcode: encabezados de copia: público vs. privado vs. proyecto?
Respuesta
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
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).
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
@ 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. –
@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
- 1. Objective-C - Privado vs Protegido vs Público
- 2. Una visión pragmática en privado vs público
- 3. Privado vs público en Cache-Control
- 4. Comprensión de los encabezados de copia de Xcode fase
- 5. copia profunda vs copia superficial
- 6. Ejemplo de encabezado privado/público?
- 7. XCode .m vs. .MM
- 8. Privado o público MSMQ
- 9. xCode vs Android SDK vs Adobe Flex
- 10. Xcode Workspace vs Nested Projects
- 11. XCode Editar configuración del proyecto vs Editar objetivo activo
- 12. Propiedad (sin procesamiento adicional) vs campo público
- 13. Servidor de repositorio SVN público o privado?
- 14. Interfaz privada vs. método privado: objetivo c
- 15. XCode GCC-4.0 vs 4.2
- 16. configuración de Xcode: Arquitectura vs arquitectura válida
- 17. solicitudes HTTP y querystring vs encabezados?
- 18. acceso a memoria vs. copia de memoria
- 19. Cambiar automáticamente de público a privado (Java)
- 20. Incluyendo encabezados en un proyecto de Xcode 4.2.1
- 21. Deshacer VS 'Excluir del proyecto'?
- 22. sangría de modificadores de visibilidad "público" y "privado"
- 23. VS compilador podría tener acceso a la copia privada ctor
- 24. C# anular miembro público y hacerlo privado
- 25. encabezados de correo electrónico smtp: ruta de retorno vs. remitente vs.
- 26. VS PostBuild Evento - Archivo de copia si existe
- 27. Verificar versión VS de un proyecto C#
- 28. público vs métodos internos en una clase interna
- 29. Integrando un repositorio público de git en un proyecto privado (sin submódulos o combinación de subárbol)
- 30. Rhino simulacro vs Typemock vs JustMock vs
Randy - Debería unir la respuesta de Power a la suya para que sea una mejor respuesta única, ¿eh? –
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
¿Alguien sabe DONDE ESTÁN las opciones para los archivos de cabecera en XCode 5? – mindbomb