2011-03-04 29 views
33

Estoy trabajando en una aplicación en xcode 4 y todo iba muy bien, entonces algo extraño comenzó a suceder. Cada vez que hago una nueva clase (cualquier tipo de clase, ViewController, NSObject, etc.) y la importo en otro archivo .m, obtengo el error "className.h", archivo no encontrado..h archivo no encontrado

Los archivos están en el proyecto y el sentido del código en xcode incluso proporciona el nombre de la clase cuando estoy escribiendo la instrucción # import.

Dejé xcode, luego limpié el proyecto y no hice nada.

¡Cualquier idea, esto me está volviendo loco!

Respuesta

4

Debe haber un problema con el software ... después de salir de xcode y del simulador unas cuantas veces, funciona de nuevo. No cambié nada. ¡Pero ahora el autocompletado dejó de funcionar! Que sera sera.

33

me encuentro con el mismo problema y los siguientes pasos han solucionado mis problemas:

  1. Ir a la meta del proyecto.
  2. ir en la "Build Phases"
  3. expandir el "Fuentes de compilación"
  4. eliminar la [nombre de archivo que causa el error] .m
  5. Añadir el archivo de nuevo.
+3

Basado en esta solución, he descubierto que simplemente el uso de Producto> Limpieza también funciona. –

+0

También asegúrese de que en la pestaña Fases de compilación, el archivo h esté en Público en lugar de Proyecto o viceversa según sus necesidades. – Nick

+0

No funcionó para mí. Agregando IG.framework desde infragistics, y luego importando su encabezado usando paréntesis angulares ... sin suerte. –

2

Abra el archivo .m relacionado con el archivo .h que proporciona el error. En las Utilidades (en la barra derecha) diríjase a la membresía objetivo y desmarque y vuelva a verificar (o simplemente verifique si no estaba marcada) el destino que desea.

+0

No hay ningún archivo .m relacionado con CocoaLibSpotify.h –

30

Acabo de tener el mismo problema y he intentado con las soluciones anteriores. Lo que funcionó para mí fue una limpieza del proyecto.

En la barra de menú vaya a ...

Producto -> Limpio

Cuando es completa, mantenga pulsada la tecla de opción y de nuevo en la barra de menú Ir a ...

Producto -> carpeta de generación limpia

No estoy seguro si fue necesario limpiar la carpeta de compilación. Es solo un hábito para mí hacer ambas cosas. Tengo que hacer esto más de lo que me gustaría en Xcode.

+2

No encuentro ninguna opción como Producto -> Limpiar carpeta de compilación. ¿Puede usted ayudar? –

+3

Debe mantener presionada la tecla de opción mientras mira el menú Producto para ver "Limpiar carpeta de compilación". – JDCartee

+13

¿Sabes qué es increíble? Un IDE que requiere que mantenga presionadas las teclas especiales para ver las cosas que necesita. Ese es un buen diseño de interfaz de usuario allí mismo./s – mmr

11

este tipo de problema se produce debido a importación cíclica. Decir si tiene un archivo de cabecera Ah y está importando Bh y en Bh si está importando de nuevo Ah entonces esto va a mostrar el archivo de error Ah que no se encuentra ...

2

tal vez estás usando #import "algo.h "en lugar de #import ('<>' usado para archivos de framework)

+0

que acaba de tener ese problema yo mismo y eso es lo que estaba causando – Edoz

-2

Al elegir la plantilla para su nuevo archivo, elija la clase Cocoa Touch, pero no el archivo Object-C, obtendrá ambos .m y. h archivos

7

Para mí, resultó ser la configuración de la ruta relativa. Cuando cambié la configuración de ubicación de "Relativo al Grupo" a "Relativo al Proyecto", de repente se encontró el archivo de encabezado. Me di cuenta en el registro que la ruta donde estaba buscando era incorrecta, no parecía atravesar correctamente el árbol de directorios, lo que me llevó a probar las otras configuraciones relativas.

enter image description here

+1

esta solución es una 'debe saber' si utiliza XCode – EarlySun