¿Por qué ProjectName-Prefix.pch no se crea automáticamente en Xcode 6?
¿Por qué no se ProjectName-Prefix.pch
crea automáticamente en Xcode 6
?
¿Ya no es necesario el encabezado de precompilación?
¿Dónde debería escribir el código que había ProjectName-Prefix.pch
antes?
Sin preguntar si es correcto o no, puedes agregar el archivo PCH manualmente:
Agregue un nuevo archivo PCH al proyecto: Nuevo archivo > Otro > Archivo PCH .
En la opción Configuración de compilación de Target , establezca el valor de Encabezado de prefijo en el nombre de su archivo PCH, con el nombre del proyecto como prefijo (es decir, para el proyecto con nombre
TestProject
y el archivo PCH con nombreMyPrefixHeaderFile
, agregue el valorTestProject/MyPrefixHeaderFile.pch
al plist).SUGERENCIA: Puedes usar cosas como
$(SRCROOT)
o$(PROJECT_DIR)
para llegar a la ruta donde colocaste el.pch
proyecto.En la opción Configuración de compilación de Target , establezca el valor de Encabezado de prefijo de precompilación en
YES
.
Sospecho que debido a los módulos, que eliminan la necesidad del archivo #import <Cocoa/Cocoa.h>
.
En cuanto a dónde colocar el código que colocaría en un encabezado de prefijo, no hay ningún código que deba colocar en un encabezado de prefijo. Coloque sus importaciones en los archivos que las necesitan. Coloque sus definiciones en sus propios archivos. Pon tus macros... en ninguna parte. Deje de escribir macros a menos que no haya otra manera (como cuando lo necesite __FILE__
). Si necesita macros, colóquelas en un encabezado e inclúyalas.
El encabezado del prefijo era necesario para cosas que son enormes y utilizadas por casi todo en todo el sistema (como Foundation.h
). Si tienes algo tan grande y ubicuo, deberías repensar tu arquitectura. Los encabezados de prefijo dificultan la reutilización del código e introducen problemas de compilación sutiles si alguno de los archivos enumerados puede cambiar. Evítelos hasta que tenga un problema grave de tiempo de compilación que pueda demostrar que mejora drásticamente con un encabezado de prefijo.
En ese caso, puedes crear uno y pasarlo a clang, pero es increíblemente raro que sea una buena idea.
EDITAR: A su pregunta específica sobre un HUD que usa en todos sus controladores de vista, sí, debe importarlo absolutamente en cada controlador de vista que realmente lo use. Esto deja claras las dependencias. Cuando reutilice su controlador de vista en un nuevo proyecto (lo cual es común si construye bien sus controladores), sabrá inmediatamente lo que requiere. Esto es especialmente importante para las categorías, que pueden hacer que el código sea muy difícil de reutilizar si están implícitos.
El archivo PCH no está ahí para eliminar las dependencias del listado. Aún debes importar UIKit.h
o Foundation.h
según sea necesario, como lo hacen las plantillas de Xcode. El motivo del PCH es mejorar los tiempos de compilación cuando se trata de encabezados realmente masivos (como en UIKit).
Necesita crear su propio archivo PCH
. AgregarNew file -> Other-> PCH file
Luego agregue la ruta de este archivo PCH a su compilaciónsetting->prefix header->path
($(SRCROOT)/nombredearchivo.pch)