# importar usando paréntesis angulares <> y comillas " "


Me pregunto qué decide si se le permite usar <Header.h> o "Header.h" cuando está importando archivos en Objective-C. Hasta ahora mi observación ha sido que utiliza las comillas "" para los archivos de su proyecto en los que tiene el origen de la implementación, y los corchetes <> cuando hace referencia a una biblioteca o marco.

Pero, ¿cómo funciona exactamente eso? ¿Qué tendría que hacer para que mis propias clases usen los corchetes? Ahora Xcode no me permite hacer eso por mi propios encabezados.

También, al mirar en algunos encabezados de frameworks, 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 por lo que sé, no hay tal cosa como un paquete en Objective-C.

Author: Josh Caswell, 2009-06-25

6 answers

Objective-C tiene esto en común con C/C++; la forma entre comillas es para inclusiones "locales" de archivos (es necesario especificar la ruta relativa del archivo actual, por ejemplo #include "headers/my_header.h"), mientras que la forma entre corchetes es para inclusiones "globales" those aquellas que se encuentran en algún lugar de la ruta de inclusión pasada al compilador (por ejemplo #include <math.h>).

Así que para tener sus propios encabezados use < > no " " necesita pasar la ruta relativa o absoluta para su directorio de encabezado al compilador. Ver " Cómo añadir un ruta de inclusión global para Xcode " para obtener información sobre cómo hacerlo en Xcode.

Vea esta página de MSDN para más información.

 107
Author: Mark Pim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:48

En C la convención es que los archivos de encabezado en bracket se buscan en los directorios 'system' y "" en los directorios de usuario o locales.

La definición de sistema y local es un poco vaga, supongo. Creo que se ve en los directorios del sistema en la ruta de inclusión o en CPPFLAGS para y el directorio local o directorio especificado con-I al compilador se buscan " encabezado.h " archivos.

Asumo que funciona de manera similar para Objective-C.

 13
Author: stefanB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-25 14:54:50

Para importar tus propias clases usando "" tienes que poner los archivos de cabecera (*.h) en la carpeta lib del compilador o establecer un SISTEMA de VARIABLES ponting a su carpeta lib.

 6
Author: Rodrigo Reis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-06 09:43:17

O establezca Always Search User Path en YES para que pueda usar corchetes angulares.

 2
Author: Ida88,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-28 22:42:31

Simplemente tropezó con el mismo problema, hay 2 tipos de rutas de búsqueda es Xcode:

User Header Search Paths
Header Search Paths

Si agrega sus propias carpetas de inclusión en las rutas de búsqueda de encabezado, puede usar corchetes en ángulo sin ningún problema.

 0
Author: fatihk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-15 07:58:24

¿QUÉ ES EL ARCHIVO HEADER ? Los archivos de cabecera contienen definiciones de funciones y variables que se pueden incorporar en cualquier programa de C mediante el uso de la instrucción pre-procesador #include. Los archivos de encabezado estándar se proporcionan con cada compilador, y cubren una gama de áreas, manejo de cadenas, matemáticas, conversión de datos, impresión y lectura de variables. Ex - # include contiene la información sobre la entrada como scanf(),y out put como printf() función y etc en un compilador.

INCLUYE

1) # INCLUIR:- Es un pre-procesador que procesa antes del 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 extensión .h que contiene declaraciones de funciones C y definiciones de macro y que se comparte entre varios archivos fuente. Q) Hay dos tipos de archivos de cabecera: los archivos que escribe el programador y los archivos ¿eso viene con tu compilador ? A) Entre corchetes angulares La forma angular-bracket es para" global " includes those aquellos que se encuentran en algún lugar de la ruta include pasada al compilador (p. ej. # include) Se utiliza para el uso de la función de biblioteca que está todo listo definir en el compilador. En C la convención es que los archivos de encabezado en bracket se buscan en los directorios' system'  B) Comillas: - " cabecera.h" el formulario citado es para inclusiones "locales" de archivos (debe 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 locales o de usuario. En ella un fichero ser incluido en otro .(INCLUSIÓN DE ARCHIVOS). Se puede utilizar en dos casos: Caso 1: Si tenemos un programa muy grande, el código se divide mejor en varios archivos diferentes, cada uno conteniendo un conjunto de funciones relacionadas. Caso 2: Hay algunas funciones y definiciones de micros que necesitamos a lo sumo en todos los programas que escribimos. Ex

 -3
Author: anitesh975,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-06 07:48:57