Me pregunto qué decide si tiene permitido usar <Header.h>
o "Header.h"
cuándo está importando archivos en Objective-C. Hasta ahora, mi observación ha sido que usa las comillas ""
para los archivos en su proyecto para los que tiene la fuente de implementación y los corchetes angulares <>
cuando hace referencia a una biblioteca o marco.
¿Pero cómo, exactamente, Cómo funciona eso? ¿Qué tendría que hacer para que mis propias clases usen los corchetes? En este momento, Xcode no me permitirá hacer eso con mis propios encabezados.
Además, al mirar los encabezados de algunos marcos, veo que los encabezados se refieren entre sí con <frameworkname/file.h>
. ¿Cómo funciona eso ? Se parece mucho a los paquetes en Java, pero hasta donde yo sé, no existen paquetes en Objective-C.
fuente
En C, la convención es que los archivos de encabezado entre
<>
corchetes se buscan en los directorios del 'sistema' y""
en los directorios locales o de usuario.La definición de sistema y local es un poco vaga, supongo. Creo que busca en los directorios del sistema en la ruta de inclusión o en CPPFLAGS para <header.h>, y en el directorio local o el directorio especificado con -I al compilador se buscan archivos "header.h".
Supongo que funciona de manera similar para Objective-C.
fuente
Para importar sus propias clases usando "<>", debe poner los archivos de encabezado (* .h) en la carpeta lib del compilador o establecer VARIABLES DEL SISTEMA en su carpeta lib.
fuente
O configúrelo
Always Search User Path
enYES
para que pueda usar corchetes angulares.fuente
Con paréntesis angulares, por ejemplo
<Foundation/Foundation.h>
, importa archivos de sistema.Utiliza comillas dobles
"Person.h"
para importar archivos locales (archivos que usted creó) y para decirle al compilador dónde buscarlos.fuente
<Name.h>
-Angle brackets
le dice al preprocesador que busque en un directorio especial del sistema pre-designado. Por ejemplo, importa encabezados de sistemas como<UIKit/UIKit.h>
marcos o marcos agregados"Name.h"
-Quotation marks
le dice al preprocesador que busque en un directorio actual . Si no se encuentra un encabezado, el preprocesador intenta usarlo<Name.h>
. Por lo general, debe usarlo con los archivos de su proyecto.fuente
Acabo de tropezar con el mismo problema, hay 2 tipos de rutas de búsqueda en Xcode:
Si agrega sus propias carpetas de inclusión en las rutas de búsqueda de encabezados, puede usar corchetes en ángulo sin ningún problema.
fuente
¿QUÉ ES HEADER FILE? Los archivos de encabezado contienen definiciones de funciones y variables que se pueden incorporar a cualquier programa en C utilizando la instrucción #include del preprocesador. Los archivos de encabezado estándar se proporcionan con cada compilador y cubren una variedad de áreas, manejo de cadenas, matemáticas, conversión de datos, impresión y lectura de variables. Ex- #include que contiene la información sobre la entrada como scanf (), y la salida como la función printf () y etc. en un compilador.
INCLUIR
1) #INCLUYE: - Es un preprocesador que procesa antes que el proceso de la función principal. El trabajo principal del preprocesador es inicializar el entorno del programa, es decir, que es el programa con el archivo de encabezado. 2) .h: - (Archivo de encabezado) Un archivo de encabezado es un archivo con la extensión .h que contiene declaraciones de funciones C y definiciones de macros y que se comparte entre varios archivos fuente. P) Hay dos tipos de archivos de encabezado: los archivos que escribe el programador y los archivos que vienen con su compilador. A) En corchetes angulares, la forma de corchetes angulares es para inclusiones "globales", aquellas que se encuentran en algún lugar de la ruta de inclusión pasada al compilador (por ejemplo, #include). Se usa para usar la función de biblioteca que está lista para definir en el compilador. En C, la convención es que los archivos de encabezado en <> corchete se buscan en 'sistema' directorios B) Comillas: - La forma entre comillas “header.h” es para inclusiones "locales" de archivos (es necesario especificar la ruta relativa del archivo actual, por ejemplo, #include "headers / my_header.h") En C, la convención es que los archivos de encabezado en "" se buscan en directorios de usuario o locales. En él un archivo para ser incluido en otro (INCLUSIÓN DE ARCHIVOS). Se puede usar en dos casos: Caso 1: Si tenemos un programa muy grande, es mejor dividir el código en varios archivos diferentes, cada uno con un conjunto de funciones relacionadas. Caso 2: Hay algunas funciones y definiciones de micros que necesitamos como máximo en todos los programas que escribimos. Ex ) En C, la convención es que los archivos de encabezado en "" se buscan en directorios de usuario o locales. En él un archivo para ser incluido en otro (INCLUSIÓN DE ARCHIVOS). Se puede usar en dos casos: Caso 1: Si tenemos un programa muy grande, es mejor dividir el código en varios archivos diferentes, cada uno con un conjunto de funciones relacionadas. Caso 2: Hay algunas funciones y definiciones de micros que necesitamos como máximo en todos los programas que escribimos. Ex ) En C, la convención es que los archivos de encabezado en "" se buscan en directorios de usuario o locales. En él un archivo para ser incluido en otro (INCLUSIÓN DE ARCHIVOS). Se puede usar en dos casos: Caso 1: Si tenemos un programa muy grande, es mejor dividir el código en varios archivos diferentes, cada uno con un conjunto de funciones relacionadas. Caso 2: Hay algunas funciones y definiciones de micros que necesitamos como máximo en todos los programas que escribimos. Ex
fuente